【问题标题】:Sending embedded image in email using sendgrid in node.js使用 node.js 中的 sendgrid 在电子邮件中发送嵌入图像
【发布时间】:2018-07-12 05:36:18
【问题描述】:

我想使用 sendgrid 从节点 js 发送一封带有嵌入图像的电子邮件。我使用以下代码

var base64Img = require('base64-img');
const sgMail = require('@sendgrid/mail');
var base64str = base64_encode("logo.png");

function base64_encode(file) {
  var bitmap = fs.readFileSync(file);
  return new Buffer(bitmap).toString("base64");
}
sendMail(["example1@gmail.com"],base64str);
function sendMail(emails,data)
{
sendgrid.send({
      to: emails[0],
      from: 'example2@gmail.com',
      subject: 'Test Mail',
      attachments: [
       {
        filename: "logo.png",
        type : "image/png",
        content: data,
        content_id: "myimagecid",
        disposition : "inline"
       }
     ],
       html:"Please look on the image <img src='content_id:myimagecid'  alt='no image found'/>",

  }, function (err) {
    if (err) {
      response.json({ message: 'Selected but Mail not sended and Error is'+err });
      console.log("Mail error",err);

    } else {
      console.log("Success Mail sended ");
      response.json({ message: 'Selected and Mail sended' });
    }
  });

}

这里我使用了 disposition : "inline",但图像仍然作为附件发送。任何人都可以帮助我吗?

【问题讨论】:

  • 嗨,我是来自linkedin的Libor。好多年没用过sendgrid了,实在是帮不上忙,抱歉。
  • 您解决了这个问题吗?

标签: node.js image sendmail sendgrid


【解决方案1】:

您将文件定义为附件,因此它最终就是这样。 相反,您需要将其定义为一个文件,然后在您的 html 代码中调用它。

如果你通读这篇文章...

https://sendgrid.com/blog/embedding-images-emails-facts/,

...您会发现这实际上不是推荐的方法。相反,您可能希望将 base64 的图像直接嵌入到您的 html 中。

【讨论】:

  • 感谢您的回复。我将其更改为文件并检查,但这次图像即使作为附件也不会发送到邮件。 base64 也不适合我。如果您有任何代码 sn-p 或代码参考,请在此处分享
  • 看来 gmail 不显示嵌入的 base64 图像,所以 cid 方法可能是唯一被所有人支持的方法。如果您解决了问题,请告诉我@MuthuPrasanth。谢谢!
【解决方案2】:

如果图片不多,可以使用Inline Embedding

<img alt="My Image" src="data:image/jpeg;base64,/9j/4S/+RXhpZgAATU0AKgAAAAgACAESAAMAENkDZ5u8/61a+X...more encoding" />

【讨论】:

  • base64 不适用于某些电子邮件客户端,gmail 是其中的一部分 –
猜你喜欢
  • 2013-03-23
  • 1970-01-01
  • 1970-01-01
  • 2018-03-13
  • 1970-01-01
  • 1970-01-01
  • 2022-10-13
  • 2018-10-23
  • 2018-11-08
相关资源
最近更新 更多