gpt4 book ai didi

javascript - Node.js 使用sendgrid发送模板

转载 作者:行者123 更新时间:2023-12-03 06:47:41 25 4
gpt4 key购买 nike

我在 sendgrid 中创建了一个非常简单的“Hello world”模板。

现在我希望使用此模板从我的 Node 服务器发送电子邮件

通常要发送邮件,我必须这样做:

    email.send = function (Object) {
sendgrid.send({
from: Object.from,
to: Object.to,
subject: Object.subject,
html: Object.html,
text: Object.text
}, function (err, json) {
if (err) {
console.log('SendGrid error:');
return console.error(err);
}
console.log('SendGrid success');
});
};

但是我不确定如何包含我的模板?

我似乎找不到有关该主题的文档,因此希望你们能够帮助我。

最佳答案

我在我的项目中使用了“email-templates-v2”。首先像这样编译你的模板文件:

var EmailTemplate = require('email-templates-v2').EmailTemplate;
var templateDir = constants.email_templates_path + 'user-line-won';
var userWonTemplate = new EmailTemplate( templateDir );

现在,为了将上下文数据传递到模板,请创建一个上下文对象。例如:

var templateContext = {};
templateContext.user = req.session.user;
templateContext.campaign = req.campaign;
templateContext.project = req.project;

现在,渲染模板并在回调函数中发送邮件。您可以在成功回调中获取编译后的模板:

userWonTemplate.render(templateContext, function (err, results) {
if( err )
{
console.log( err );
res.render('error', {'title': 'Error', 'error': err, 'session': req.session});
}
else
{
var nodemailer = require("nodemailer");
var mailTransport = nodemailer.createTransport();
var mailOptions = {
from: fromEmail,
to: toEmail,
subject: subjectEmail,
text: "A user subject line has won.\n",
html: results.html
};
mailTransport.sendMail(mailOptions, function(error, response){
if(error){
console.log(error);
}else{
console.log("Message sent: " + response.message);
}
});
next();
}
});

我使用了nodemailer,但是将编译后的html传递给sendgrid应该可以类似地工作。

关于javascript - Node.js 使用sendgrid发送模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37655153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com