22
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 并能够通过添加图像等使发送的电子邮件看起来更好?

谢谢

4

5 回答 5

47

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);
于 2011-10-24T08:53:24.247 回答
8

你必须设置mailObj .IsBodyHtml = true;

于 2011-10-24T08:52:12.690 回答
2

您可以使用以下想法获取 ASPX 页面并将其呈现为字符串:

StringWriter writer = new StringWriter();
Server.Execute("Login.aspx", writer);
string html = writer.ToString();

如果随后将 MailMessage.IsBodyHtml 设置为 true,则可以发送 HTML 消息。如果您想使用图像和其他东西,请确保电子邮件的接收者可以访问这些图像。

于 2011-10-24T08:54:42.733 回答
1

有两种方法可以做到这一点:

  1. 将图像嵌入到您的邮件中。(见这个问题

  2. 通过 HTML 邮件中图像标签的 src 属性链接到图像。这需要您将图像文件托管在收件人可以访问的网络服务器上的某个位置。

在这两种情况下,您都需要发送带有 html 正文的邮件。

mailObj.IsBodyHtml = true;
于 2011-10-24T09:08:00.140 回答
-1

对于您关于将图像添加到电子邮件的问题,如果您要求嵌入,那么您可以使用 HTML 的锚标记,或者使用我猜的 mailObj.Attachments.Add() 方法将图像文件附加到邮件中。

但最好的方法是将图像作为附件发送,因为有些防火墙只是阻止嵌入的图像,但允许附件。因此,尽管这不是一种完美的方式,但您在交付内容时会更加安全。

于 2011-10-24T09:09:20.720 回答