Проблема при отправке почты с помощью System.Net.Mail C#

StackOverflow https://stackoverflow.com/questions/607941

  •  03-07-2019
  •  | 
  •  

Вопрос

Это мой код отправки почты.Я получал сообщение об ошибке «Недопустимый символ в заголовке письма». Когда я изменил имя своего компьютера, какое-то самое короткое имя.Проблема решена.Но в моем домене целые имена компьютеров такие, как «04500-ab04545.xxxdomain.gov.tr», поэтому мне нужно найти другое решение этой проблемы.

Поэтому я не могу указать статическое имя компьютера при отправке почты из кода С#.

 MailMessage msg = new MailMessage();
 msg.Body = "axxxxxx";
 msg.To.Add(new MailAddress("xxxx@xxxx.domain"));
 msg.From = new MailAddress("xxxx@xxxx.domain","blab blalb");
 msg.Subject = "Subject xxx";
 SmtpClient server = new SmtpClient("xxxxxxxx",25);
 server.Credentials = new NetworkCredential("xxxxx", "xxxxxxx");
 SmtpClient server = new SmtpClient("mail.adalet.gov.tr",25);
 server.Credentials = new NetworkCredential("xxx", "xxx");
 server.Send(msg);
Это было полезно?

Решение

Я подозреваю, что это может быть проблема, связанная с кодировкой.

Попробуйте использовать new MailAddress("xxxx@xxxx.domain","blab blalb", Encoding.Default) конструктор.

Еще попробуй Encoding.Unicode.

Обновлять:

После некоторого копания это исключение выдается из:

void System.Net.BufferBuilder.Append(string,int,int);

Это произойдет, если в адресе электронной почты есть символы выше \xff.Этого не должно произойти, так как имя уже должно быть закодировано, но я думаю, что-то еще происходит забавно.

Другие советы

С какими заголовками пытается отправить сообщение?

Вы можете легко сделать дамп с помощью этого фрагмента MSDN:

string[] keys = message.Headers.AllKeys;
        Console.WriteLine("Headers");
        foreach (string s in keys)
        {
            Console.WriteLine("{0}:", s);
            Console.WriteLine("    {0}", message.Headers[s]);

Я получил эту ошибку, когда если изменить ее на «сеть», ошибка будет устранена.(Насколько я понимаю, в случае указанной опции PickupDirectory заголовок - кодировка utf-8 (base64) выдавал ошибку)

Надеюсь, поможет

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