Подтвердить что ты не робот

Несколько адресов в конструкторе MailAddress

Я пытался добавить несколько адресов таким образом.

MailAddress mailAddressTo = new MailAddress("[email protected];[email protected]","Vetrivelmp");

но выдает ошибку, например

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

Ответ 1

вы не можете использовать конструктор MailAddress для указания нескольких квитанций, но вы должны использовать объект MailMessage, как показано ниже

...
MailMessage mail = new MailMessage();
mail.To.Add("[email protected],[email protected],[email protected]");
...

другой способ:

MailMessage msg = new MailMessage();
msg.To.Add("[email protected]");
msg.To.Add("[email protected]");
msg.To.Add("[email protected]");
msg.To.Add("[email protected]");

Ответ 2

На самом деле точка с запятой не является допустимым разделителем. К сожалению, MSDN не документирует это, должен был это выяснить сам.

Если вы хотите добавить другие адреса, разделите их запятой. И пространство разделит отображаемое имя и адрес электронной почты. Свойство "Кому" принимает следующие форматы:

и т.д...

Я написал больше об этом вопросе в этом сообщении в блоге

Ответ 3

Может возникнуть вопрос, почему вы хотите это сделать? Что-то вроде MailMessage.To является MailAddressCollection, метод Add перегружен, чтобы принимать несколько адресов электронной почты в строке, разделенной запятой (см. http://msdn.microsoft.com/en-us/library/ms144695.aspx).

Обычное использование объектов MailAddress заключается в их добавлении к сообщениям электронной почты, и если у вас есть несколько адресов, я предполагаю, что вы хотите добавить их в одно из полей To, CC и т.д., и в этом случае добавление перегрузки должно сделать вас мило. Если есть что-то еще, тогда вам нужно будет предоставить больше контекста для того, что вы пытаетесь сделать.

Ответ 4

Используйте запятую (,) как разделитель вместо точки с запятой (;).

Если в параметре адресов передано несколько адресов электронной почты, разделенных символом с запятой ( ";" ). Исключено исключение FormatException.

Примеры, которые работают

MailAddressCollection.Add(String):

using (MailMessage msg = new MailMessage())
{
  ...
  msg.To.Add("[email protected], [email protected]");
  ...
}

MailAddressCollection.Add(MailAddress):

using (MailMessage msg = new MailMessage())
{
  ...
  msg.To.Add(new MailAddress("[email protected]", "Vetrivelmp"));
  msg.To.Add(new MailAddress("[email protected]", "Vetrivelmp1"));
  ...
}

Ответ 6

@Tschareck

"Для разделения элементов в списке почтовых адресов используется запятая. В результате запятая не должна использоваться в некотируемых отображаемых именах в списке. Следующие адреса электронной почты будут разрешены" в http://msdn.microsoft.com/en-us/library/system.net.mail.mailaddress.aspx

С уважением, Anarud

Ответ 7

Это то, что сработало для меня.

  MailMessage m_message = new MailMessage();
  string m_addys = "[email protected],[email protected]";
  m_message.To.Add(m_addys);