【问题标题】:Not sends email to more than one address不向多个地址发送电子邮件
【发布时间】:2013-07-17 09:10:43
【问题描述】:

我在我的网络应用程序中发送多封电子邮件时遇到问题。 如果我只发送到一个地址,它会正常发送!

我的字符串列表是正确的,因为如果我在 Outlook 中粘贴并手动发送,所有地址都会收到。

嗯,这是我的字符串 listEmail 有一个值“caio.jesus@ex.com”,我收到了。 如果字符串 listEmail 的值为“caio.jesus@ex.com; raul@ex.com; mat@ex.com;”没有人收到。

lstEmail.ToList();
        string listEmail = string.Join("; ", lstEmail.ToArray());

System.Net.Mail.MailMessage objEmail = new System.Net.Mail.MailMessage();
        objEmail.From = new MailAddress("caio.jesus@ex.com", "BR");
        objEmail.To.Add(listEmail);
        objEmail.Priority = System.Net.Mail.MailPriority.High;
        objEmail.IsBodyHtml = true;
        objEmail.Subject = "System NDRSecurity - Novas Requisições.";
        objEmail.Body = "EX";
        objEmail.SubjectEncoding = Encoding.GetEncoding("ISO-8859-1");
        objEmail.BodyEncoding = Encoding.GetEncoding("ISO-8859-1");
        SmtpClient objSmtp = new SmtpClient("XXX");
        objSmtp.EnableSsl = true;
        objSmtp.Port = 25;
        objSmtp.Credentials = new NetworkCredential("caio.jesus@ex.com", "XXX");
        objSmtp.Send(objEmail);

【问题讨论】:

  • 你试过没有昏迷后的空格吗?我和你发同样的邮件,我没有遇到任何问题。
  • 您是否费心阅读文档?
  • @Sachin 不!没有错误!
  • 只有 Outlook 以“;”分隔而闻名。也许 System.Net.Mail 遵循标准并使用“,”。

标签: c# asp.net .net


【解决方案1】:

解决方案见MSDN MailAddressCollection

参数

地址

类型: System.String

要添加到 MailAddressCollection 的电子邮件地址。多个电子邮件地址必须用逗号字符 (",") 分隔

所以把你的代码改成

lstEmail.ToList();
string listEmail = string.Join(", ", lstEmail.ToArray());

它应该可以工作!

【讨论】:

    【解决方案2】:

    您的listemail 字符串需要用逗号, 分隔,而不是分号;

    这是解释MailAddress 类的 MSDN 文章:http://msdn.microsoft.com/en-us/library/system.net.mail.mailaddress.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-28
      • 2019-01-10
      • 2012-03-31
      • 2014-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多