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

时间:2011-03-05 07:28:10

标签: c# .net email

我正在尝试使用gmail的用户名和密码在Windows应用程序中发送电子邮件。但是,当我在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);

我做错了什么,我怎样才能解决我的问题?

2 个答案:

答案 0 :(得分:4)

最好的选择是message.To.Add()每个MailAddress个人。我认为.Net的早期版本更喜欢解析逗号或分号分隔的电子邮件地址而不是更新的运行时版本。

答案 1 :(得分: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