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