Проблема при отправке почты по System.Net.Mail C # - PullRequest
3 голосов
/ 03 марта 2009

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

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

 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);

Ответы [ 3 ]

4 голосов
/ 03 марта 2009

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

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

Иначе попробуйте Encoding.Unicode.

Обновление:

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

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

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

0 голосов
/ 20 августа 2014

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

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

0 голосов
/ 03 марта 2009

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

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

string[] keys = message.Headers.AllKeys;
        Console.WriteLine("Headers");
        foreach (string s in keys)
        {
            Console.WriteLine("{0}:", s);
            Console.WriteLine("    {0}", message.Headers[s]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...