在ASP.NET中我发送了一个MailMessage,但它不会通过。我正在使用的代码是
message.To.Add(email1 + ", " + email2 + ", " + email3);
当我这样做时,我从未收到过我的邮件。但是,如果我使用此代码:
message.To.Add(email1 + ", " + email2);
每次发送都很好。谁知道这里发生了什么?所有3封电子邮件都是相同的(用于测试目的),并且在调试时已经过验证是正确的。我尝试为第三个插入一个不同的电子邮件地址,但仍然没有通过。我可能会遗漏一些明显的东西......
编辑: 每个人都告诉我要单独添加它们,如果每个人都同意的话,这可能是一个很好的建议。之前我没有这样做的原因,我只是用三个单独的地址再次尝试了它,但没有发送过。如果这应该有用的话,我可能完全有另一个问题吗?
编辑:对于今后遇到同样问题的人,我就是这么做的。创建MailMessage时,我没有使用任何参数创建它,而是单独指定From参数。我在new MailAddress()
中包含了From和all To电子邮件,所有这些更改的组合似乎都有效。
答案 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]);
}
哈维萨瑟