V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
WoneFrank
V2EX  ›  程序员

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

  •  
  •   WoneFrank · 261 天前 · 1253 次点击
    这是一个创建于 261 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    9 条回复    2024-03-13 13:48:32 +08:00
    woodfizky
        1
    woodfizky  
       261 天前
    %3D 吧?
    WoneFrank
        2
    WoneFrank  
    OP
       261 天前
    @woodfizky 不是,比如这是我邮件里 html 代码:
    <style type="text/css">
    发过去就变成这样了:
    <style type=3D"text/css">
    shadowyue
        3
    shadowyue  
       261 天前
    你的意思是,你的邮件正文内容就包含了 html 代码是吗?试试把代码放到 code 标签里或者 pre 标签里
    WoneFrank
        4
    WoneFrank  
    OP
       261 天前
    @shadowyue 不是,我整个邮件就是一个 html 页面
    busier
        5
    busier  
       261 天前   ❤️ 1
    邮件内容如果是 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
        6
    busier  
       261 天前
    另外,如果你要 Content-Transfer-Encoding: base64 ,那么整个邮件正文就应该被 base64 编码!
    MIME 里的 Content-Transfer-Encoding 头是描述接下来正文的编码,而不是设置你要转换的编码!
    busier
        7
    busier  
       261 天前
    另外,你还可以将 Content-Transfer-Encoding: 8bit (如果只有纯英文 ASCII 字符,没有中文等用 7bit )
    这样可以发原文,不过要求 SMTP 服务器扩展支持 8bit 字符集,且行长不能超过 1000 ,所以并不推荐使用
    ttvast
        8
    ttvast  
       260 天前 via Android
    麻烦你用一个 mime 的库来组邮件吧,要么就从头学起。
    WoneFrank
        9
    WoneFrank  
    OP
       260 天前
    @busier 这些试过了,最后发现是客户端不支持一个样式语法,不清楚是什么情况,本地测试 html 正常,过去样式就有问题,然后曲线救国换了一种写法
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3232 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:47 · PVG 20:47 · LAX 04:47 · JFK 07:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.