1

我有一个带有内联图像的邮件正文,如下所示:

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

nodemailer用来发送邮件。我还有一个图像的相对 URL。但图像未显示在 Outlook 中。似乎cid不适用于最新版本的 Outlook。

其他选择?

是否可以base64在nodejs中获取图像。我已经看到了示例,canvas但是xmlhttprequest如果不使用我不想使用的外部模块,就无法在节点中完成。

请问有什么解决办法吗?

4

1 回答 1

-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
于 2018-09-07T15:07:59.357 回答