MailMessage c#-如何使其成为HTML和添加图像等?

MailMessage c#-如何使其成为HTML和添加图像等?,c#,asp.net,html,mailmessage,C#,Asp.net,Html,Mailmessage,这就是我目前发送测试电子邮件的方式。 我如何使这个html,并能够使发送的电子邮件看起来更好,通过添加图像等 谢谢您必须设置mailObj.IsBodyHtml=true在MailMessage上,将属性IsBodyHtml设置为true string to = "email@hotmail.co.uk"; string body = "Test"; SmtpClient SMTPServer = new SmtpClient("127.0.0.1"); MailMessage mailO

这就是我目前发送测试电子邮件的方式。 我如何使这个html,并能够使发送的电子邮件看起来更好,通过添加图像等


谢谢

您必须设置
mailObj.IsBodyHtml=true

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);
 SMTPServer.Send(mailObj);

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

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);

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

有两种方法:

  • 将图像嵌入邮件中。(见附件)

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

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

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

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


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

    最好不要将SmtpClient对象称为SMTPServer。
    mailObj.IsBodyHtml = true;