MailAddress构造函数中的多个地址

Vet*_* mp 24 .net c# system.net.mail mailmessage

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

MailAddress mailAddressTo = new MailAddress("sample@google.com;sample1@google.com","Vetrivelmp");
Run Code Online (Sandbox Code Playgroud)

但抛出错误就像

An invalid character was found in the mail header: ';'
Run Code Online (Sandbox Code Playgroud)

Mas*_*uso 39

您不能使用MailAddress构造函数指定多个收据,但您可以使用该MailMessage对象,如下所示.

使用MailMessage( MailAddress)构造函数:

var msg = new MailMessage("from@domain.com", "to1@gmail.com, to2@gmail.com");
Run Code Online (Sandbox Code Playgroud)

另一种方式是:

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

另一种方式是:

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");
Run Code Online (Sandbox Code Playgroud)


Tsc*_*eck 20

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

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

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

等等...

在这篇博文中写了更多关于这个主题的文章


Joh*_*hnB 5

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

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

有效的例子

MailAddressCollection.Add(String):

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

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"));
  ...
}
Run Code Online (Sandbox Code Playgroud)