从 C# 发送 html 电子邮件
Posted
技术标签:
【中文标题】从 C# 发送 html 电子邮件【英文标题】:Sending html emails from C# 【发布时间】:2011-03-26 17:44:38 【问题描述】:我正在尝试向 gmail 帐户发送 html 电子邮件,但由于某种原因,Google 正在从我的电子邮件中删除 html。当我发送到其他帐户(非 gmail 帐户)时,HTML 会被保留,所以我知道我的 html 是正确的。
我是这样处理的:
-
我有一个 aspx 页面,用作电子邮件模板。
我从 Web 服务中的 aspx 页面中获取 html(在 C# 中完成)
在 Web 服务中通过 c# 代码动态填充非静态内容。
将其作为电子邮件正文发送。
有谁知道 gmail 为什么要删除 html? 提前致谢。
【问题讨论】:
在这里分享最低限度的非工作代码。 【参考方案1】:当我发送到其他帐户(非 gmail 帐户)时,HTML 会被保留,因此我知道我的 html 是正确的。
这不是编程问题。如果是这样,正如您所观察到的那样,所有客户端都会发生这种情况。
问题是这样的:大多数现代电子邮件客户端允许用户选择禁止 html 消息,或始终将其视为纯文本。这可能就是这里正在发生的事情。您必须编写代码才能预料到这一点,因为您无法控制用户的偏好。如果他们启用了此功能,并且您仅将其作为 html 发送,那么他们看起来会很丑。
但是,为了解决您的问题,您应该始终将邮件作为 Multi-Part Mime 消息发送,以使所有客户都能获得可读性好的版本。
【讨论】:
谢谢大卫。我一定会确保它是多部分哑剧【参考方案2】:您需要确保在 MailMessage 上将 IsBodyHtml 属性设置为 true:
var message = new MailMessage();
message.IsBodyHtml = true;
// Fill and send message here
查看 MSDN 参考以获得更多信息:
System.Net.Mail.MailMessage Members
【讨论】:
以上是关于从 C# 发送 html 电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
使用 SmtpClient 通过 C# 发送 HTML 电子邮件
如何发送带有 HTML 标签的电子邮件,而不是 C# 中的 HTML 纯文本