Почему я получаю 5.5.4 Ошибка неверного адреса?
-
05-07-2019 - |
Вопрос
Я попытался отправить электронное письмо, используя следующий код:
MailMessage message = new MailMessage();
message.From = new MailAddress(fromMailAddress.Trim());
message.To.Add(new MailAddress(toMailAddress.Trim()));
message.Subject = subject;
message.Body = body;
message.SubjectEncoding = System.Text.Encoding.UTF8;
message.BodyEncoding = System.Text.Encoding.UTF8;
SmtpClient client = new SmtpClient();
try
{
client.Send(message);
}
catch(Exception e)
{
throw e;
}
Однако я получил исключение:
Ответ сервера: 5.5.4 Неверный адрес
От адреса электронной почты до адреса электронной почты, имени хоста и порта сервера все правильно. Точно такой же код с точно такими же входными значениями работает на другом компьютере в нашем офисе.
Решение
Узнал ответ после некоторой тщательной отладки.
Оказывается, в имени моего компьютера есть символ & # 229; '(недопустимый шведский). После изменения это сработало.
Другие советы
Был выпущен КБ для System.Net.Mail, который затрагивал разбор адресов и Unicode, поэтому причиной того, что он работал на одном компьютере, а не на другом, было, вероятно, наличие этого КБ. .NET 4.0 также имеет некоторые существенные улучшения в разборе адресов электронной почты.