c#怎么把mailmessage保存为eml文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#怎么把mailmessage保存为eml文件?相关的知识,希望对你有一定的参考价值。

参考技术A 链接已发到你的HI中
参考技术B 链接已发到你的HI中
另外,团IDC网上有许多产品团购,便宜有口碑

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

【中文标题】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】:

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

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

【讨论】:

【参考方案3】:

有两种方法:

    在您的邮件中嵌入图像。 (见this question)

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

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

mailObj.IsBodyHtml = true;

【讨论】:

【参考方案4】:

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

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

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

【讨论】:

【参考方案5】:

你必须设置mailObj .IsBodyHtml = true;

【讨论】:

以上是关于c#怎么把mailmessage保存为eml文件?的主要内容,如果未能解决你的问题,请参考以下文章

将 System.Net.mail.MailMessage 保存为 .msg 文件

将文件从 MemoryStream 附加到 C# 中的 MailMessage

请问.EML是啥文件的格式呢 用设么软件打开呢

在 .NET 中序列化 MailMessage 对象的优雅方式

在内存中创建 eml 文件而不将其保存在磁盘上

在 C# 中解析 .eml 文件的建议