使用sendgrid发送带有图像的邮件

“上面发送电子邮件的代码是.iam厌倦了我的头,但仍然不能看到邮件中的图像。我将图像转换为base 64编码的string,并且还遵循sendgrid语法仍然无法发送形象。我不知道wats会出错。

var app = require("../../../server/server"); var base64Img = require("base64-img"); let status = null; let textBody, htmBody = null; var DataSource = require("loopback-datasource-juggler").DataSource; var dsSendGrid = new DataSource("loopback-connector-sendgrid", { api_key: app.customConfig.mail.sendgrid.api_key }); var fs = require("fs"); function base64_encode(file) { var bitmap = fs.readFileSync(file); return new Buffer(bitmap).toString("base64"); } function base64_decode(base64str, file) { var bitmap = new Buffer(base64str, "base64"); fs.writeFileSync(file, bitmap); console.log( "******** File created from base64 encoded string ********", base64str ); } var base64str = base64_encode("../../../images/Campaign-images/Christmas.png"); let message = { to: "somebody@gmail.com", from: "noreply@gmail.com", subject: "test", text: "hi", html: '<img src="cid:myimagecid"/>', attachment: [ { filename: "Christmas2.png", content: base64str, ContentId: "myimagecid" } ] }; console.log(message); app.models.Email.send(message) .then(result => { return "sent"; }) .catch(err => { console.log(err); return "failed"; }); 

如果我查看https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/index.html

我看到它是附件不附件

还有content_id而不是ContentId

另外请确定,您正在使用正确的版本(我指向v3,但我认为您可以select使用v2)