电子邮件正文中的HTML显示为HTML本身。不呈现ASP.NET Mail

问题描述 投票:0回答:2

我从ASP.NET(VB)发送电子邮件时遇到了一些麻烦。这是我的代码

            Using mm As New MailMessage("myemai@abcd.com", mc.mailTo)

                If mc.mailCC.Trim <> "" Then
                    mm.CC.Add(mc.mailCC)
                End If
                If mc.mailBCC.Trim <> "" Then
                    mm.CC.Add(mc.mailBCC)
                End If
                mm.IsBodyHtml = True
                mm.Subject = mc.mailSubject
                mm.Body = b
                Dim smtp As New SmtpClient() 


                Try
                    smtp.Send(mm)
                Catch ex As SmtpException
                    gf.logArray(jA, ex.Message)
                    Dim statuscode As SmtpStatusCode
                    statuscode = ex.StatusCode
                    If statuscode = SmtpStatusCode.MailboxBusy Or statuscode = SmtpStatusCode.MailboxUnavailable Or statuscode = SmtpStatusCode.TransactionFailed Then
                        System.Threading.Thread.Sleep(5000)
                        smtp.Send(mm)

                    End If


                End Try

            End Using

我遇到的问题是。邮件发送正常。但是身体只显示HTML。即使我明确指定mm.isBodyHTML = true也不渲染。有什么建议请...

这是我得到的信息

enter image description here

asp.net smtpclient asp.net-mail
2个回答
0
投票

我认为主要问题在于你的html消息体。尝试发送带有内容的邮件正文表,没有DOCTYPE,head和其他内容。

由于邮件代理在已存在的html页面中呈现您的邮件,因此无法在页面中呈现页面,因此代理将您的邮件正文编码为字符串。


0
投票

如果你使用smtp发送电子邮件,你可以添加一个参数IsBodyHtml,我面临同样的问题,并通过设置IsBodyHtml = true修复,它适用于我。

var fromAddress = new MailAddress("abc@gmail.com", "Abc Noreply");
        var toAddress = new MailAddress(email, "");
        const string fromPassword = "acbsexample";



        var smtp = new SmtpClient
        {
            Host = "smtp.gmail.com",
            Port = 587,
            EnableSsl = true,
            DeliveryMethod = SmtpDeliveryMethod.Network,
            UseDefaultCredentials = false,
            Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
        };
        using (var message = new MailMessage(fromAddress, toAddress)
        {
            Subject = subject,
            Body = emailBody,
            IsBodyHtml=true
        })
        {
            smtp.Send(message);
        }