Html 使用meteorjs发送电子邮件时,base64内联图像显示不正确

Html 使用meteorjs发送电子邮件时,base64内联图像显示不正确,html,email,templates,meteor,base64,Html,Email,Templates,Meteor,Base64,当前情况: (客户端)模板: <template name="feedback"> <h1>The Image</h1> <img src="{{image}}" alt=""/> </template> (服务器端): 预期结果:一封嵌入图像的漂亮电子邮件 实际结果:我收到一封邮件,部分是html,部分是“原始”文本。我不知道为什么 这是我在原始电子邮件中看到的一部分: Content-Type: text/htm

当前情况

(客户端)模板:

<template name="feedback">
    <h1>The Image</h1>
    <img src="{{image}}" alt=""/>
</template>
(服务器端):

预期结果:一封嵌入图像的漂亮电子邮件

实际结果:我收到一封邮件,部分是html,部分是“原始”文本。我不知道为什么

这是我在原始电子邮件中看到的一部分:

Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<h1>The Image</h1>
=20=20=20=20<img =
src=3D"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB4AAAALKCAYAAADTWUxrAA
内容类型:text/html;字符集=utf-8
内容传输编码:引用可打印
形象
=20=20=20=20

有什么想法吗

Gmail和许多其他客户端都不允许您在img标记中使用base64作为源。不过,有一些方法可以解决这个问题:

第一个也是最简单的方法可能是将图像保存在服务器上,并将url放入图像源标记中。这样做的另一个好处是能够处理一些跟踪(需要一些额外的开发)

第二种方法是使用第三方邮件系统,向他们发送图像和HTML,并以这种方式进行设置。这可能有很多原因,但它并不能真正回答你的问题

最后,您可以在电子邮件模板中这样做,方法是添加一个与此答案非常类似的多部分多类型边界解决方案:


好吧,在那里浪费了一些宝贵的时间:-),一天中的时间减少了:重复检查假设。谢谢
Email.send({
    to: 'xxx',
    from: 'xxx',
    subject: 'xxx',
    html: html
});
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<h1>The Image</h1>
=20=20=20=20<img =
src=3D"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB4AAAALKCAYAAADTWUxrAA