我正在生成电子邮件。它们在gmail和Outlook 2010中对我来说很好。但是,我的客户端看到的=符号会被引用的可打印格式添加到行尾。它还会占用下一行的字符,但随后显示等号。
示例:
line that en=
ds like this
显示为
line that en=s like this
(注意:我的电子邮件中的EOL字符只是LF。没有CR。)
我正在确认我的客户端使用的Outlook版本,但我认为它是2007年。来自她的电子邮件标题似乎来自Exchange 6.5。
我的电子邮件是使用HtmlMimeMail5库在php中创建的。它们是多部分电子邮件,适用的部分发送时间为:
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
看来我可以确保我的电子邮件中没有任何内容达到76个字符的换行符,但这似乎是解决问题的错误方法。 EOL角色应该不同吗? (在来自客户端的电子邮件中,EOL角色只是一个LF)其他任何想法?
答案 0 :(得分:6)
我不知道PHP库的功能,但最后MIME邮件必须包含CR LF行结尾。显然客户端注意到=后面没有正确的CR LF序列,所以它假设它不是一个软换行符,而是一个用两个十六进制数字编码的字符,因此它读取接下来的两个字节。它应该注意到接下来的两个字节不是有效的十六进制数字,所以它的行为也是错误的,但是我们不得不承认在那时它没有机会显示有用的东西。他们选择了垃圾进入垃圾进场。