Вопрос

Я попытался отправить электронное письмо, используя следующий код:

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 также имеет некоторые существенные улучшения в разборе адресов электронной почты.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top