关于发 html 邮件时里面的=号变成了=3D 的问题

60 天前
 WoneFrank

在发邮件的时候,邮件是 html 内容的,html 标签里=号变成了=3D 。

直接被 Quoted-Printable 编码了,各位大佬怎么能避免这个编码?

尝试过:Content-Transfer-Encoding: base64 ,charset utf8 ,还是不行。

1069 次点击
所在节点    程序员
9 条回复
woodfizky
60 天前
%3D 吧?
WoneFrank
60 天前
@woodfizky 不是,比如这是我邮件里 html 代码:
<style type="text/css">
发过去就变成这样了:
<style type=3D"text/css">
shadowyue
60 天前
你的意思是,你的邮件正文内容就包含了 html 代码是吗?试试把代码放到 code 标签里或者 pre 标签里
WoneFrank
60 天前
@shadowyue 不是,我整个邮件就是一个 html 页面
busier
60 天前
邮件内容如果是 html 的话,就应该使用 Quoted-Printable 编码,不然诸如中文等非 ASCII 字符的兼容性问题你怎么解决
参考:
Content-Type: html/text; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

接下来正文 html 用 qprint -e webpage.html 编码一下即可

qprint 命令没有的话,用 sudo apt-get install qprint 安装一下( ubuntu/debian )

===========================
最终整个 MIME 源码用 ASCII 方式编码即可保证最佳兼容性。
busier
60 天前
另外,如果你要 Content-Transfer-Encoding: base64 ,那么整个邮件正文就应该被 base64 编码!
MIME 里的 Content-Transfer-Encoding 头是描述接下来正文的编码,而不是设置你要转换的编码!
busier
60 天前
另外,你还可以将 Content-Transfer-Encoding: 8bit (如果只有纯英文 ASCII 字符,没有中文等用 7bit )
这样可以发原文,不过要求 SMTP 服务器扩展支持 8bit 字符集,且行长不能超过 1000 ,所以并不推荐使用
ttvast
59 天前
麻烦你用一个 mime 的库来组邮件吧,要么就从头学起。
WoneFrank
59 天前
@busier 这些试过了,最后发现是客户端不支持一个样式语法,不清楚是什么情况,本地测试 html 正常,过去样式就有问题,然后曲线救国换了一种写法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1022949

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX