如何在C#中发送带有多个地址的电子邮件

7
我正在尝试在Windows应用程序中使用gmail的用户名和密码发送电子邮件。但是,下面的代码只向第一个电子邮件地址发送电子邮件,而我在StringBuilder实例中收集了多个电子邮件地址。
var fromAddress = new MailAddress(username, DefaultSender);
var toAddress = new MailAddress(builder.ToString());//builder reference having multiple email address

string subject = txtSubject.Text;
string body = txtBody.Text; ;
var smtp = new SmtpClient
{
    Host = HostName,
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,
    Credentials = new NetworkCredential(username, password),
    //Timeout = 1000000

};
var message = new MailMessage(fromAddress, toAddress)
{
    Subject = subject,
    Body = body,
    IsBodyHtml = chkHtmlBody.Checked

};

if (System.IO.File.Exists(txtAttechments.Text))
{
    System.Net.Mail.Attachment attechment = new  Attachment(txtAttechments.Text);
    message.Attachments.Add(attechment);
}

if(this.Enabled)
    this.Enabled = false;

smtp.Send(message);

我做错了什么,我该如何解决我的问题?

建造者是用“,”还是“;”作为分隔符? - Phil C
具有由“,”分隔的电子邮件地址的Builder实例:“email1@gmail.comemail2@gmail.com - Joe
2个回答

4

最好的方法是单独为每个您的邮件地址使用message.To.Add()。我认为早期版本的 .Net 更愿意解析逗号或分号分隔的电子邮件地址,而比较近期的运行时版本则不太喜欢。


代码运行良好。谢谢!message.To.Add(builder.ToString()) - Joe

0

我遇到了同样的问题。

实际上,代码是

message.To.Add("xxx@gmail.com, yyy@gmail.com");

这个可以在 .net 3.5 中使用

如果你使用

message.To.Add( new MailAddress("xxx@gmail.com, yyy@gmail.com"));

这在 .net 3.5 中不起作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接