MailMessage c# - 如何使其成为 HTML 并添加图像等?
Posted
技术标签:
【中文标题】MailMessage c# - 如何使其成为 HTML 并添加图像等?【英文标题】:MailMessage c# - How to make it HTML and add images etc? 【发布时间】:2011-12-13 23:04:58 【问题描述】:string to = "email@hotmail.co.uk";
string body = "Test";
SmtpClient SMTPServer = new SmtpClient("127.0.0.1");
MailMessage mailObj = new MailMessage(urEmail, to, subject, body);
SMTPServer.Send(mailObj);
这就是我目前发送测试电子邮件的方式。 我如何制作这个 html 并能够通过添加图像等使发送的电子邮件看起来更好?
谢谢
【问题讨论】:
最好不要将 SmtpClient 对象称为 SMTPServer。 【参考方案1】:在MailMessage
上,将属性IsBodyHtml
设置为true。
string to = "email@hotmail.co.uk";
string body = "Test";
SmtpClient SMTPServer = new SmtpClient("127.0.0.1");
MailMessage mailObj = new MailMessage(urEmail, to, subject, body);
mailObj.IsBodyHtml = true; // This line
SMTPServer.Send(mailObj);
【讨论】:
【参考方案2】:你必须设置mailObj .IsBodyHtml = true;
【讨论】:
【参考方案3】:您可以使用以下想法来获取一个 ASPX 页面并将其呈现为一个字符串:
StringWriter writer = new StringWriter();
Server.Execute("Login.aspx", writer);
string html = writer.ToString();
如果您随后将 MailMessage.IsBodyHtml 设置为 true,您可以发送 HTML 消息。如果您想使用图片和其他内容,请确保电子邮件的收件人可以访问这些图片。
【讨论】:
【参考方案4】:有两种方法:
在您的邮件中嵌入图像。 (见this question)
通过 HTML 邮件中图像标签的 src 属性链接到图像。这需要您将图像文件托管在收件人可以访问的网络服务器上。
在这两种情况下,您都需要发送带有 html 正文的邮件。
mailObj.IsBodyHtml = true;
【讨论】:
【参考方案5】:对于您关于将图像添加到电子邮件的问题,如果您要求嵌入,那么您可以使用 HTML 的锚标记,或者使用我猜的 mailObj.Attachments.Add() 方法将图像文件附加到邮件中。
但最好的方法是将图像作为附件发送,因为有些防火墙只是阻止嵌入的图像,但允许附件。因此,尽管这不是一种完美的方式,但您在交付内容时会更加安全。
【讨论】:
以上是关于MailMessage c# - 如何使其成为 HTML 并添加图像等?的主要内容,如果未能解决你的问题,请参考以下文章