使用内嵌图像发送邮件时,图像中的Cid不起作用

时间:2018-05-31 09:18:03

标签: node.js base64 nodemailer inline-images

我有一个邮件正文,其内嵌图像设置如下:

<img src="cid:<<content-id>>">

我正在使用nodemailer发送邮件。我还有一个图像的相对URL。但图像未在Outlook中显示。好像cid似乎无法使用最新版本的Outlook。

其他选择?

是否可以在nodejs中获取base64图像。我看过canvasxmlhttprequest的示例,但是不能使用我不想要的外部模块在节点中完成。

有任何解决方案吗?

1 个答案:

答案 0 :(得分:-1)

使用一个示例,如果您的html属性是:

<p><img src="cid:c001" /></p>

然后,attachments属性必须如下:

[ { path: "data:image/gif;base64,...image data here....",
     cid: "c001"
} ]

对于其他嵌入式图像,只需将它们添加到attachments数组中即可。

以上内容将生成如下邮件:

Content-Type: multipart/alternative; boundary="s1"

--s1
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

    ...the (plain)`text` part of your message
--s1
Content-Type: multipart/related; type="text/html"; boundary="s2"

--s2
Content-Type: text/html

<p><img src="cid:c001" /></p>
--s2

Content-Type: image/gif; name=attachment-1.gif
Content-ID: <c001>
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=attachment-1.gif

...image data here....
--s2
--s1