发送的电子邮件仍包含HTML标记。

时间:2016-11-09 16:54:46

标签: c# asp.net smtpclient

我正在向使用模板的人发送电子邮件。问题是所有标签都在显示。

<p>Hello,</p>

<p> Please, click the following link to change your password </p>
//...
<p> PLEASE DO NOT REPLY TO THIS MESSAGE</p>

收到的邮件正在显示包含所有标签的原始邮件。有没有办法让它看起来像

这是我的代码:

string path = System.Web.HttpContext.Current.Server.MapPath("~/path/myTemplate.txt");
String body;
using (StreamReader sr = new StreamReader(path))
{
   body = sr.ReadToEnd();
}

body = body.Replace("<%PasswordLink%>", pwdLink);

var mail = new MailMessage("from", "to");
mail.Subject = "Password Reset";
mail.Priority = MailPriority.High;
mail.Body = body;

var client = new SmtpClient();
client.Port = 25;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Host = "123.45.67.89";
client.Send(mail);

3 个答案:

答案 0 :(得分:6)

您需要声明邮件是HTML。如果您使用System.Web.Mail.MailMessage,请使用:

mail.BodyFormat = MailFormat.Html;

如果您正在使用System.Net.Mail.MailMessage,请使用:

mail.IsBodyHtml = true;

答案 1 :(得分:1)

添加mail.IsBodyHtml = true;

这将为电子邮件启用HTML格式。

答案 2 :(得分:1)

我猜你必须将邮件正文定义为HTML:

mail.IsBodyHtml = true;