HTML в теле письма отображается как сам HTML. Не рендерит почту ASP.NET

Я сталкиваюсь с небольшой проблемой при отправке писем из 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. Любые предложения, пожалуйста...

Это сообщение, которое я получил

1 ответ

Если вы используете 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);
        }

Я думаю, что основная проблема заключается в теле сообщения HTML. Попробуйте отправить в теле сообщения только таблицу с содержимым, без DOCTYPE, заголовка и другого содержимого.

Так как почтовый агент отображает ваше сообщение на уже существующей html-странице, поэтому он не может отобразить страницу на странице, чтобы агент кодировал тело вашего сообщения в виде строки.

Другие вопросы по тегам