Проблема с кодировкой почтовой программы .NET

Я использую GMail (Google Apps) в качестве SMTP-сервера на своем веб-сайте для отправки электронных писем. Письма отправлялись нормально, пока сегодня я не заметил, что кодировка кажется ненадежной.

В Yahoo все сообщение отображается китайскими иероглифами (почта полностью на английском языке). В Hotmail тема письма была написана китайскими иероглифами.

Ниже приведен мой код электронной почты:

Dim SMTPMail = New SmtpClient("smtp.gmail.com", 587)
SMTPMail.EnableSsl = True
SMTPMail.UseDefaultCredentials = False

Dim MailAuthentication = New NetworkCredential("[email protected]", "blahblah")
SMTPMail.Credentials = MailAuthentication

Dim EmailMessage As New MailMessage(New MailAddress(FromAddress), New MailAddress(ToAddress))

EmailMessage.BodyEncoding = Encoding.Unicode
EmailMessage.Subject = "Blah blah"
EmailMessage.Body = "Blah blah"
EmailMessage.Priority = Priority
EmailMessage.IsBodyHtml = True

EmailMessage.From = New MailAddress(FromAddress)
SMTPMail.Send(EmailMessage)

Кодировка в заголовке, показанная Yahoo:

Content-Type: text/html; charset=utf-16
Content-Transfer-Encoding: base64

Любая идея, почему это происходит?


person Donnie Thomas    schedule 09.04.2011    source источник
comment
Еще один программист попадает в ловушку того, что инструменты Microsoft ошибочно называют «Unicode». Что на самом деле является UTF-16LE, кодировкой, которую вы почти никогда не захотите...   -  person bobince    schedule 10.04.2011


Ответы (1)


Если все ваше сообщение на английском языке (US-ASCII), удалите эту строку:

EmailMessage.BodyEncoding = Encoding.Unicode
person dave wanta    schedule 09.04.2011
comment
Я внес это изменение, и это, кажется, решило проблему в Yahoo, но в Hotmail адрес «от» по-прежнему отображается на китайском языке! Любая идея, почему эти почтовые службы могут думать, что кодировка на китайском языке? Изменить: чтобы уточнить, на китайском языке отображается только само электронное письмо, а не имя отправителя. - person Donnie Thomas; 09.04.2011
comment
Я изменил FromAddress на электронную почту, имя вместо имени ‹email›. Кажется, это решило проблему. Тем не менее, вы все еще не понимаете, почему это происходит? - person Donnie Thomas; 09.04.2011