我有一个发送电子邮件的应用程序,几个月来,它运行良好。我最近遇到了utf-8
发送到 iPhone 的编码电子邮件问题Exchange account
(即不是IMAP
)。
接收者只需要看到一大堆无意义的字符,例如LS0tLS0tPV9QYXJ0XzE0N18[....]
.
将我的电子邮件标题与 Gmail 进行比较,我注意到我有一个额外Content-Transfer-Encoding
的与Content-Type: multipart/alternative;
.
我的电子邮件看起来像
Delivered-To: ...
Received: ...
...
MIME-Version: ...
Content-Type: multipart/alternative;
boundary="----=_boundary"
Content-Transfer-Encoding: Base64 # <= the extra setting
----=_boundary
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: Base64
YmVu0Cg==
----=_boundary
Content-type: text/html; charset=utf-8
Content-Transfer-Encoding: Base64
PGh0bWwgeG1sbnM6bz0iIj48aGVhZD48dGl0bGU+PC90aXRsZT48L2hlYWQ+PGJvZHk+YmVub2l0
PC9ib2R5PjwvaHRtbD4NCjx9IjAiIC8+Cg==
----=_boundary
如果我删除额外的设置,我的电子邮件会被接收并正确显示。
我的问题:
- 即使对于特定情况,
Encoding
基本上也需要设置?Content-Type: multipart/alternative;
- 删除它并像以前一样继续使用我的应用程序是否安全?
编辑
我发现IETF
:
编码注意事项:多部分内容类型不能有编码。
但我也发现Wikipedia
:
多部分类型的内容传输编码必须始终为“7 位”、“8 位”或“二进制”,以避免多级解码带来的复杂性。
是不是很矛盾?