嵌入的图片不会显示在电子邮件正文中

时间:2017-05-23 04:46:33

标签: node.js nodemailer

我使用nodemailer发送包含嵌入图片的电子邮件,但图片并未显示在某些电子邮件客户端应用(例如雷鸟)的邮件正文中。 由于Content-Transfer-Encoding设置为quoted-printable,我怀疑发生了这种情况。因此,它会在src元素的img属性中添加3D字符(对 = 字符进行编码):

<img src=3D"cid:61767c3c-7f99-4f0f-a15b-b5edc0f0c2c4@emailaddress.com">

如何在nodemailer中永久关闭quoted-printable编码?我已经尝试在消息选项中设置textEncoding: 'base64',但似乎节点制作者忽略了它。

let message = {
  from: {
    name: 'Someone',
    address: 'someone@emailaddress.com'
  },
  to: {
    name: sender,
    address: emailTo.toLowerCase()
  },
  subject: 'Purchased Tickets',
  html: 'Some text<br><img src="cid:61767c3c-7f99-4f0f-a15b-b5edc0f0c2c4@emailaddress.com"/><br>Some more text<br><img src="cid:1a419f12-1205-49e5-b0f7-fd407c0bfa27@emailaddress.com"/><br>',
  attachments: ticketList.map((t, i) => ({
    filename: `ticket${i + 1}.png`,
    content: t.qrCode,
    cid: `${t.ticketNumber}@emailaddress.com`
  })),
  encoding: 'base64',
  textEncoding: 'base64'
}

transporter.sendMail(message, (err, info) => {
  if (err) {
    console.log(err)
  } else {
    console.log(info)
  }
})

1 个答案:

答案 0 :(得分:0)

我的一些电子邮件中存在同样的问题,但它似乎与Content-Transfert-Encoding无关。 实际上,图像显示在我的一些邮件上

Content-Transfer-Encoding: quoted-printable

但不是全部...