为什么 Nodemailer 会损坏我的电子邮件 html?

问题描述 投票:0回答:1

我使用 nodemailer 通过 html 发送了以下 html:

<html>
    <div>
        <div>The Archimandrite<br /><img src="cid:The Archimandrite" /></div>
    </div>
</html>

但是当我使用“显示原始内容”查看 Gmail 中的邮件时,我看到以下 html:

<html>
    <div>
        <div>The Archimandrite<br /><img src=3D"cid:The Archimandrite" /></=
div>
    </div>
</html>

由于某种原因,中间有一个随机的

3D
,一行末尾有一个
=

这是怎么回事,我怎样才能让nodemailer正常运行?

nodemailer
1个回答
0
投票

tl;博士

使用 nodemailer 的

{ textEncoding: 'base64' }
选项

更多信息

一开始我尝试过

textEncoding
,但不知为何似乎没有效果。要么是我做错了什么,要么是我忘记在运行代码之前保存文件,或者是某事,因为它不起作用,我将该选项标记为无用。

我尝试使用 libqp 包,如问题评论中所述。这有助于解决转义字符,但对换行问题没有帮助。

我尝试删除空格并将其替换为明确的

\n
字符。

我尝试了不同的内容行长度。

我尝试将我的 html 硬包装为 75 个字符,以便它适合并且根本不会得到任何

=
字符,但我的一些 html 代码需要很长的行。

然后我尝试通过将

cid
附加到它们的末尾来使我的
_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
标签变得非常长,并且由于某种原因,当我这样做时效果很好。

我还尝试添加更长的文本行并正确显示。

我注意到,当我通过 GitHub Actions 运行代码时,原始电子邮件显示编码为

7bit
,而本地运行则显示
qouted-printable

经过上述尝试的多次组合,我终于回到

textEncoding
选项再试一次,效果很好。

© www.soinside.com 2019 - 2024. All rights reserved.