Некоторые почтовые клиенты не отображают html письма, отправленные с c # - PullRequest
0 голосов
/ 14 апреля 2011

У меня есть программа, которая отправляет электронные письма в формате HTML, используя c # и System.Net.Mail.Большинство писем получено правильно, но некоторые получатели сообщают о получении письма, которое выглядит для меня как кодировка.Они сообщают, что электронные письма в формате HTML, отправленные им от наших пользователей через внешний вид, выглядят корректно.

Ниже приведен код, который я использую, я добавил "mm.BodyEncoding = System.Text.Encoding.UTF8;"чтобы попытаться это исправить, я вообще не устанавливал это значение, которое, по-моему, по умолчанию использует кодировку ASCII.Это довольно сложно отладить, так как я не могу воссоздать ошибку.

public List<string> Send()
        {
            List<string> Errors = new List<string>();

            try
            {
                MailMessage mm = new MailMessage();
                if (HTMLBody)
                {
                    mm.IsBodyHtml = true;
                    mm.BodyEncoding = System.Text.Encoding.UTF8;
                }
                if (ReplyTo != "")
                {
                    mm.ReplyToList.Add(ReplyTo);
                }
                mm.Body = this.Body;
                mm.Subject = this.Subject;
                mm.From = new System.Net.Mail.MailAddress(this.Sender);
                foreach (string address in this.Recipients.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries))
                {
                    try
                    {
                        mm.To.Add(address);
                    }
                    catch (FormatException)
                    {
                        Errors.Add("Invalid Email Address Format:" + address);
                    }

                }
                foreach (string address in BlindCC.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries))
                {
                    try
                    {
                        mm.Bcc.Add(address);
                    }
                    catch (FormatException)
                    {
                        Errors.Add("Invalid Email Address Format:" + address);
                    }
                }
                SmtpClient smtp = new SmtpClient(SMTPServer);
                foreach (string Attach in Attachments)
                {
                    mm.Attachments.Add(new Attachment(Attach));
                }
                try
                {
                    smtp.Send(mm);
                }
                catch (SmtpException ex)
                {
                    Errors.Add(ex.Message);
                }
            }
            catch (Exception ex)
            {
                Errors.Add(ex.ToString());
            }

            return Errors;
        }

Получающий жалобу получатель выглядит примерно так:

Тема: 21.01.2011 Еженедельное обновление контента-Тип: текст / HTML;charset = "utf-8" Content-Transfer-Encoding: base64

To: нераскрытые получатели :;

1011 * PGJhc2UgaHJlZj0iaHR0cDovL3d3dy5tdXR1YWxtZWQuY29tL2VtYWlscy8iIC8 + PGh0bWw + PCEtLSBJbnN0YW5jZUJlZ2luIHRlbXBsYXRlPSIvVGVtcGxhdGVzL3Rl bXBsYXRlLmR3dCIgY29kZU91dHNpZGVIVE1MSXNMb2NrZWQ9ImZhbHNlIiAtLT4N CjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...