某些电子邮件客户端不显示从c#发送的html电子邮件

时间:2011-04-13 20:54:41

标签: c# email

我有一个使用c#和System.Net.Mail发送HTML电子邮件的程序。大多数电子邮件都是正确收到的,但有些收件人正在报告收到的电子邮件对我来说就像编码一样。他们报告说,通过Outlook发送给用户的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;
        }

抱怨的收件人得到的内容如下:

主题:2011年1月21日每周更新 内容类型:text / html;字符集= “UTF-8” Content-Transfer-Encoding:base64

致:未披露的收件人:;

PGJhc2UgaHJlZj0iaHR0cDovL3d3dy5tdXR1YWxtZWQuY29tL2VtYWlscy8iIC8 + PGh0bWw + PCEtLSBJbnN0YW5jZUJlZ2luIHRlbXBsYXRlPSIvVGVtcGxhdGVzL3Rl bXBsYXRlLmR3dCIgY29kZU91dHNpZGVIVE1MSXNMb2NrZWQ9ImZhbHNlIiAtLT4N CjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50

0 个答案:

没有答案