Я пытался добавить несколько адресов таким образом.
MailAddress mailAddressTo = new MailAddress("[email protected];[email protected]","Vetrivelmp");
но выдает ошибку, например
An invalid character was found in the mail header: ';'
Я пытался добавить несколько адресов таким образом.
MailAddress mailAddressTo = new MailAddress("[email protected];[email protected]","Vetrivelmp");
но выдает ошибку, например
An invalid character was found in the mail header: ';'
вы не можете использовать конструктор 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]");
На самом деле точка с запятой не является допустимым разделителем. К сожалению, MSDN не документирует это, должен был это выяснить сам.
Если вы хотите добавить другие адреса, разделите их запятой. И пространство разделит отображаемое имя и адрес электронной почты. Свойство "Кому" принимает следующие форматы:
и т.д...
Я написал больше об этом вопросе в этом сообщении в блоге
Может возникнуть вопрос, почему вы хотите это сделать? Что-то вроде MailMessage.To
является MailAddressCollection
, метод Add
перегружен, чтобы принимать несколько адресов электронной почты в строке, разделенной запятой (см. http://msdn.microsoft.com/en-us/library/ms144695.aspx).
Обычное использование объектов MailAddress заключается в их добавлении к сообщениям электронной почты, и если у вас есть несколько адресов, я предполагаю, что вы хотите добавить их в одно из полей To, CC и т.д., и в этом случае добавление перегрузки должно сделать вас мило. Если есть что-то еще, тогда вам нужно будет предоставить больше контекста для того, что вы пытаетесь сделать.
Используйте запятую (,) как разделитель вместо точки с запятой (;).
Если в параметре адресов передано несколько адресов электронной почты, разделенных символом с запятой ( ";" ). Исключено исключение 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"));
...
}
Вот еще один вариант этой темы: FWIW:
SenderEmail = "[email protected]";
RecipientEmail = "[email protected], [email protected], [email protected]";
MailMessage msg = new MailMessage(SenderEmail, RecipientEmail);
Обратите внимание на запятые. Более подробную информацию можно найти в MSDN здесь.
@Tschareck
"Для разделения элементов в списке почтовых адресов используется запятая. В результате запятая не должна использоваться в некотируемых отображаемых именах в списке. Следующие адреса электронной почты будут разрешены" в http://msdn.microsoft.com/en-us/library/system.net.mail.mailaddress.aspx
С уважением, Anarud
Это то, что сработало для меня.
MailMessage m_message = new MailMessage();
string m_addys = "[email protected],[email protected]";
m_message.To.Add(m_addys);