Я пытался добавить несколько таких адресов.
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
(не MailAddress
):
var msg = new MailMessage("[email protected]", "[email protected], [email protected]");
другой способ:
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]");
mail.To
— это MailAddressCollection
, который позволяет использовать несколько адресов электронной почты. MailAddress
всегда содержит только один адрес (факт единственного числа может помочь вам запомнить это).
- person Chris; 16.03.2012
mail.To = "[email protected];[email protected];[email protected]";
действительно работать? MailMessage.To
является объектом MailAddressCollection
. Вы не можете назначить ему строку — вам нужно будет использовать метод .Add
, и ваш список адресов электронной почты должен быть разделен запятыми, а не точками с запятой.
- person Matt Hogan-Jones; 08.07.2014
mail.To.Add("[email protected],[email protected],[email protected]");
- person snumpy; 10.12.2014
MailAddress
. Но я согласен, что ответ Чарека более правильный, потому что он объясняет использование точки с запятой в качестве разделителя адресов, несмотря ни на что.
- person Arkaine55; 20.09.2016
На самом деле точка с запятой не является допустимым разделителем. К сожалению, MSDN не документирует это, пришлось выяснить это самому.
Если вы хотите добавить больше адресов, разделите их запятой. А пробел разделит отображаемое имя и адрес электронной почты. Свойство "Кому" принимает следующие форматы:
так далее...
Я написал больше об этой теме в этом сообщении блога
"name [email protected], [email protected]"
, MailMessage интерпретировал тест, который я провел, как имя электронной почты в качестве префикса электронной почты. Пришлось сделать так: "Adam Miller <[email protected]>"
- person Adam Miller; 28.05.2015
Используйте запятую (,) в качестве разделителя вместо точки с запятой (;).
Если в параметре address передано несколько адресов электронной почты, разделенных точкой с запятой (";"). возникает исключение FormatException.
Примеры, которые работают
MailAddressCollection.Добавить(Строка):
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"));
...
}
Может возникнуть вопрос, почему вы хотите это сделать? Что-то вроде MailMessage.To
является MailAddressCollection
, чей метод Add
перегружен для получения нескольких адресов электронной почты в строке, разделенных запятой (см. http://msdn.microsoft.com/en-us/library/ms144695)..aspx).
Обычно объекты MailAddress используются для добавления их в электронные письма, и если у вас есть несколько адресов, я предполагаю, что вы хотите добавить их в одно из полей To, CC и т. д., и в этом случае перегрузка Add должна вам подойти. Если есть что-то еще, вам придется предоставить больше контекста для того, что вы пытаетесь сделать.
MailAddress
предназначен для одного почтового адреса. msdn.microsoft.com/en-us/library/ — это документы, которые, как мы надеемся, должны ответить на любые другие ваши вопросы по объекту.
- person Chris; 16.03.2012
Вот еще одна вариация на эту тему, FWIW:
SenderEmail = "[email protected]";
RecipientEmail = "[email protected], [email protected], [email protected]";
MailMessage msg = new MailMessage(SenderEmail, RecipientEmail);
Обратите внимание на запятые. Дополнительные сведения можно найти в MSDN здесь.
@Чарек
«Запятая используется для разделения элементов в списке почтовых адресов. В результате запятая не должна использоваться в некавычках отображаемых имен в списке. Следующие почтовые адреса будут разрешены» в http://msdn.microsoft.com/en-us/library/system.net.mail.mailaddress.aspx
С уважением, Анаруд.
Это то, что сработало для меня.
MailMessage m_message = new MailMessage();
string m_addys = "[email protected],[email protected]";
m_message.To.Add(m_addys);