0

在 ASP.NET 中,我正在发送 MailMessage,但它不会通过。我正在使用的代码是

message.To.Add(email1 + ", " + email2 + ", " + email3);

当我这样做时,我永远不会收到我的邮件。但是,如果我使用此代码:

message.To.Add(email1 + ", " + email2);

每次发送都很好。有人知道这里发生了什么吗?所有 3 封电子邮件都是相同的(出于测试目的),并且在调试时已被验证为正确。我尝试为第三个插入不同的电子邮件地址,但仍然没有通过。我可能遗漏了一些明显的东西......

编辑:每个人都告诉我单独添加它们,如果每个人都同意,这可能是个好建议。我以前没有这样做的原因,我只是用三个单独的地址再次尝试,但没有一个被发送。如果应该可行的话,也许我还有另一个问题?

编辑:对于将来遇到同样问题的任何人,这就是我所做的。创建 MailMessage 时,我没有使用任何参数创建它,而是单独指定了 From 参数。我将 From 和所有 To 电子邮件都new MailAddress()包含在内,所有这些更改的组合似乎都有效。

4

5 回答 5

4

多打Add几次就行了。

于 2011-11-10T16:53:01.687 回答
2

MailMessage的To属性是一个集合,因此 message.To.Add如果要发送到 3 个电子邮件地址,则应调用 3 次。

于 2011-11-10T16:53:50.237 回答
2

与其将发送到单个 Add 语句中的邮件连接起来,不如一次添加一个:

message.To.Add(email1);
message.To.Add(email2);
message.To.Add(email3);

由于您要添加到集合中。

另外,如果地址相同,根据我的经验,该功能通常不会添加两次。这可能是 Mailmessage.To.Add 函数的一种行为,也可能是当它到达我时 Outlook 已经删除了重复项,但在我看来它过滤掉了重复项。您可能会在系统上看到相同的内容。

于 2011-11-10T16:55:34.460 回答
2

尝试

message.to.add(email1);
message.to.add(email2);
message.to.add(email3);
message.to.add(email4);

希望这可以帮助

哈维萨瑟

于 2011-11-10T16:55:57.143 回答
0

我将消息收件人存储在 web.config 文件中,然后像这样处理它

 string lstrDistributitionList = ConfigurationSettings.AppSettings["SMTP_DISTRIBUTION_LIST"];
                    string[] lastrDistributitionList = lstrDistributitionList.Split(';');

                    for (Int32 loopCounter = 0; loopCounter < lastrDistributitionList.Length; loopCounter++)
                    {
                        msg.To.Add(lastrDistributitionList[loopCounter]);
                    }

哈维萨瑟

于 2011-11-10T16:59:40.777 回答