MailAddress构造函数中的多个地址

时间:2012-03-16 11:08:23

标签: c# .net system.net.mail mailmessage

我试图添加多个这样的地址。

MailAddress mailAddressTo = new MailAddress("sample@google.com;sample1@google.com","Vetrivelmp");

但抛出错误,如

An invalid character was found in the mail header: ';'

7 个答案:

答案 0 :(得分:38)

您无法使用MailAddress构造函数指定多个收据,但您可以使用MailMessage对象,如下所示。

使用MailMessage MailAddress)构造函数:

var msg = new MailMessage("from@domain.com", "to1@gmail.com, to2@gmail.com");

另一种方式是:

MailMessage mail = new MailMessage();
mail.To.Add("me@mycompany.com,him@hiscompany.com,her@hercompany.com");

另一种方式是:

MailMessage msg = new MailMessage();
msg.To.Add("person1@domain.com");
msg.To.Add("person2@domain.com");
msg.To.Add("person3@domain.com");
msg.To.Add("person4@domain.com");

答案 1 :(得分:20)

实际上,分号不是有效的分隔符。不幸的是,MSDN没有记录这个,不得不自己找出来。

如果要添加更多地址,请用逗号分隔。空间将划分显示名称和电子邮件地址。 “收件人”属性接受以下格式:

  • “email@server.com”
  • “email1 @ server1.com,email2 @ server2.com”
  • “姓名email@server.com”
  • “name email @ server1.com,email @server2.com”

等...

我写了更多关于这个主题in this blog post

的文章

答案 2 :(得分:4)

使用逗号(,)作为分隔符而不是分号(;)。

  

如果在地址参数中传递了以分号(“;”)分隔的多个电子邮件地址。引发了一个FormatException异常。

有效的示例

MailAddressCollection.Add(字符串):

using (MailMessage msg = new MailMessage())
{
  ...
  msg.To.Add("sample@google.com, sample1@google.com");
  ...
}

MailAddressCollection.Add(MailAddress):

using (MailMessage msg = new MailMessage())
{
  ...
  msg.To.Add(new MailAddress("sample@google.com", "Vetrivelmp"));
  msg.To.Add(new MailAddress("sample1@google.com", "Vetrivelmp1"));
  ...
}

答案 3 :(得分:2)

可能有一个问题,为什么你想要这样做? MailMessage.To之类的内容是MailAddressCollection,其Add方法被重载以在字符串中包含多个电子邮件地址,以逗号分隔(请参阅http://msdn.microsoft.com/en-us/library/ms144695.aspx)。

MailAddress对象的通常用途是将它们添加到电子邮件中,如果您有多个地址,那么我假设您要将它们添加到To,CC等字段之一,在这种情况下,Add重载应该是你很好。如果还有别的东西,那么你将不得不为你想要做的事情提供更多的背景。

答案 4 :(得分:1)

以下是此主题的另一个变体,FWIW:

    SenderEmail = "me@mine.com";
    RecipientEmail = "this@this.com, that@that.com, other@theother.com";
    MailMessage msg = new MailMessage(SenderEmail, RecipientEmail);

请注意逗号。有关详细信息,请访问MSDN here

答案 5 :(得分:0)

@Tschareck

“逗号用于分隔邮件地址列表中的元素。因此,不应在列表中的不带引号的显示名称中使用逗号。”http://msdn.microsoft.com/en-us/library/system.net.mail.mailaddress.aspx中允许使用以下邮件地址

祝你好运, Anarud

答案 6 :(得分:-2)

这对我有用。

  MailMessage m_message = new MailMessage();
  string m_addys = "addy2@foo.com,addy1@foo.com";
  m_message.To.Add(m_addys);