发送文本和 HTML 电子邮件 - 为啥 Gmail 总是选择文本版本?
Posted
技术标签:
【中文标题】发送文本和 HTML 电子邮件 - 为啥 Gmail 总是选择文本版本?【英文标题】:Sending Text and HTML Emails - Why is Gmail Always Picking Text Version?发送文本和 HTML 电子邮件 - 为什么 Gmail 总是选择文本版本? 【发布时间】:2011-10-30 05:55:16 【问题描述】:我正在使用ActionMailer.NET 从我的 ASP.NET MVC 应用程序发送一些电子邮件。
现在,此过程的一部分是发送消息的 html 和文本版本,以支持纯文本客户端。
但我看到的是,GMail总是选择文本版本。
我试过 Yahoo,Yahoo 正确选择了 HTML 版本。
我尝试将我的 HTML 简化为一个 <h1>
和一个 <span>
标记,而 GMail 仍然选择文本版本,这意味着 HTML 的内容没有问题。
这是预期的行为吗?
因为当我只发送 HTML 版本时,GMail 会正确显示 HTML 版本。
我在 HTML 中设置元标记如下:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
有没有其他人遇到过这种行为并找到了解决方案?
因为目前的情况,我可能必须只发送 HTML 版本,以便 GMail 呈现它,因为我们有太多的客户使用 GMail。
这是我尝试发送的基本 HTML 示例:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
</head>
<body>
<h1>This is the heading</h1>
<span>This is some text.</span>
</body>
</html>
GMail 甚至不允许这样做。
【问题讨论】:
【参考方案1】:大多数基于 Web 的客户端和桌面电子邮件客户端会忽略电子邮件的 <head>
标记中的任何内容。
要同时发送 html 和文本版本,您需要正确构建邮件消息 - 有两个 mime 块。
向我们展示您用于构建电子邮件的完整代码。
【讨论】:
这一切都在 ActionMailer.NET 内置代码中,所以我没有设置任何标题等。我只是好奇为什么 Yahoo 可以工作,Gmail 没有。相同的消息。 在构建 MailMessage 对象时,使用 MailMessage.AlternateViews 属性:msdn.microsoft.com/en-us/library/… 没关系,我发现了问题,请参阅上面的答案。无论如何感谢您的帮助 (+1)【参考方案2】:我想我应该首先检查的是 ActionMailer.NET 问题。
我做了一些谷歌搜索,但没有出现。
此问题已于 2 天前修复,因此获取最新软件包即可解决此问题。
https://bitbucket.org/swaj/actionmailer.net/issue/23/multipart-mail-problem
这个问题实际上与 Thunderbird 有关,但猜测 GMail 有类似的方式来处理多部分电子邮件。
问题解决了!
【讨论】:
以上是关于发送文本和 HTML 电子邮件 - 为啥 Gmail 总是选择文本版本?的主要内容,如果未能解决你的问题,请参考以下文章
通过 SMTP 发送带有附件、纯文本/文本和文本/html 的电子邮件