通过C#使用SmtpClient发送HTML邮件

如何发送HTML电子邮件? 我在这个答案中使用代码发送电子邮件与SmtpClient ,但他们总是纯文本,所以下面的示例消息中的链接没有这样格式化。

 <p>Welcome to SiteName. To activate your account, visit this URL: <a href="http://SiteName.com/a?key=1234">http://SiteName.com/a?key=1234</a>.</p> 

如何在我发送的电子邮件中启用HTML?

这就是我所做的:

 MailMessage mail = new MailMessage(from, to, subject, message); mail.IsBodyHtml = true; SmtpClient client = new SmtpClient("localhost"); client.Send(mail); 

请注意,我将邮件消息html设置为true: mail.IsBodyHtml = true;

我相信这是这样的:

 mailObject.IsBodyHtml = true; 

IsBodyHtml = true无疑是最重要的部分。

但是如果你想提供一个包含text / plain部分和text / html部分的电子邮件,也可以使用AlternateView类:

 MailMessage msg = new MailMessage(); AlternateView plainView = AlternateView .CreateAlternateViewFromString("Some plaintext", Encoding.UTF8, "text/plain"); // We have something to show in real old mail clients. msg.AlternateViews.Add(plainView); string htmlText = "The <b>fancy</b> part."; AlternateView htmlView = AlternateView.CreateAlternateViewFromString(htmlText, Encoding.UTF8, "text/html"); msg.AlternateViews.Add(htmlView); // And a html attachment to make sure. msg.Body = htmlText; // But the basis is the html body msg.IsBodyHtml = true; // But the basis is the html body 

应用Mailbody的正确编码。

 mail.IsBodyHtml = true; 

我有一个想法,你可以添加一个checkbox到您的项目发送电子邮件为HTML为用户的选项,并添加以下代码来启用它:

  MailMessage mail = new MailMessage(from, to, subject, message); if(checkBox1.CheckState == CheckState.Checked ) { mail.IsBodyHtml = true; } SmtpClient client = new SmtpClient("localhost"); client.Send(mail);