Как отправить электронное письмо на адрес с тире? - PullRequest
6 голосов
/ 06 ноября 2010

Это я или есть ошибка в классе MailAddress в System.Net.Mail?

Этот код всегда будет выдавать исключение:

MailMessage mail = new MailMessage();
mail.From = new MailAddress("me@me.com");     
mail.To.Add("joe-blow@me.com");

mail.Subject = "Test email"
mail.IsBodyHtml = true;
mail.Body = "<b>Does not work</b>";

//Connect to server and send message.               
SmtpClient smtp = new SmtpClient();
smtp.Host = "mailserver.me.com";
smtp.Send(mail);

Исключение, которое я получаю, это:

System.FormatException: The specified string is not in the form required for an
e-mail address.

Однако, согласно wiki , тире является действительным символом в локальной части.

Кто-нибудь знает способ использования классов System.Net.Mail для отправки электронного письма кому-то с дефисом в адресе?

Ответы [ 2 ]

2 голосов
/ 06 ноября 2010

Ты уверен?Это работает для меня (я вырезал и вставил твой код, заменив твой фиктивный почтовый сервер моим фактическим почтовым сервером.) Я просто получаю уведомления о доставке, что сообщение на joe-blow@me.com невозможно доставить.

Так как у тебя есть сообщение об исключенииЯ думаю, это реально.Возможно, это проблема кодировки?

0 голосов
/ 06 ноября 2010

Это исключение может быть вызвано неверным адресом электронной почты в атрибуте from элемента smtp файла app.config.Несмотря на то, что любая попытка отправить сообщение электронной почты вызовет исключение, независимо от того, содержит ли адрес электронной почты to тире или нет.Тем не менее, стоит проверить, что указано в элементе mailSettings файла app.config.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...