1

我正在使用Postal发送带有 HTML 和文本部分的电子邮件。

当电子邮件发送到 Gmail 时,它会正确显示。但是,当它显示在至少两个其他电子邮件系统(Mail Enable 的 webmail 界面和客户端的未知系统)中时,文本会呈现为类似于中文的内容。当客户端将电子邮件转发回 Gmail 帐户时,“中文”渲染也可见。

生成的示例电子邮件:

X-Sender: no-reply@thecompany.com
X-Receiver: therecipient@thecompany.com
MIME-Version: 1.0
From: no-reply@thecompany.com
To: therecipient@thecompany.com
Date: 17 Apr 2013 22:11:25 -0700
Subject: Some Subject
Content-Type: multipart/alternative;
 boundary=--boundary_0_83808b99-ef32-4f47-8835-ba4a435a2141


----boundary_0_83808b99-ef32-4f47-8835-ba4a435a2141
Content-Type: text/plain; charset=utf-16
Content-Transfer-Encoding: base64

MIME ENCODED CONTENTS HERE==
----boundary_0_83808b99-ef32-4f47-8835-ba4a435a2141
Content-Type: text/html; charset=utf-16
Content-Transfer-Encoding: base64

MIME ENCODED CONTENTS HERE=
----boundary_0_83808b99-ef32-4f47-8835-ba4a435a2141--

显然,Gmail 以某种方式解决了编码问题,但其他电子邮件服务器却没有,但究竟是什么问题?

charset指定为utf-16。Postal(或 MVC 引擎)实际上是否生成utf-8输出?如何控制输出的编码和/或charset电子邮件标头中指定的编码?

4

1 回答 1

2

可以通过添加标头将字符编码显式设置为 utf-8

Content-Type: text/plain; charset=utf-8
and
Content-Type: text/html; charset=utf-8

有关更多信息,请参阅本文

注意:文章中有错别字。该text/plain行缺少分号。这在上面的例子中得到了纠正。

于 2013-04-18T16:03:32.817 回答