Cid в изображениях не работает при отправке почты со встроенными изображениями
У меня есть тело письма со встроенным изображением, установленным следующим образом:
<img src="cid:<<content-id>>">
я использую nodemailer
отправлять письма. У меня также есть относительный URL-адрес изображения. Но изображение не отображается в Outlook. Похоже на cid
не работает с последними версиями Outlook.
Другие опции?
Можно ли получить base64
изображения в nodejs. Я видел пример с canvas
а также xmlhttprequest
но это не может быть сделано в узле без использования внешних модулей, которые я не хочу.
Любые решения, пожалуйста?
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