MailMessage不会发送给超过2个收件人?

时间:2011-11-10 16:51:43

标签: asp.net mailmessage

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

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

当我这样做时,我从未收到过我的邮件。但是,如果我使用此代码:

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

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

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

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

5 个答案:

答案 0 :(得分:4)

只需多次致电Add

答案 1 :(得分:2)

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

答案 2 :(得分:2)

您应该一次添加一个,而不是将邮件发送到单个Add语句中,而不是将它们添加到一起:

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

因为您要添加到集合中。

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

答案 3 :(得分:2)

尝试

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

希望这有帮助

哈维萨瑟

答案 4 :(得分: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]);
                    }

哈维萨瑟