使用 Express/Sendgrid 将电子邮件模板用于联系表单
Use email template for contact form using Express/Sendgrid
我有一个使用 Node Sendgrid helper library 的简单联系表。
我想使用编译为 HTML 并添加正确上下文的模板 email/contact.jade
。我知道它需要进入 payload.html
值,但我仍然不知道如何使用模板发送电子邮件。
routes.js
app.route('/contact')
.post(function(req, res) {
var template = 'email/contact.jade';
var payload = {
to: req.body.email,
from: 'example@example.com',
subject: req.body.subject,
html: req.body.message
};
var email = new sendgridClient.Email(payload);
sendgridClient.send(email, function(err, json) {
if (err) {
return console.error(err);
} else {
res.redirect('/thanks');
}
});
});
email/contact.玉
p Thanks
p Name {{ name }}
p Email {{ email }}
p Subject {{ subject }}
p Message {{ message }}
首先,我不确定您的 jade 语法是否正确。你可以试试这个:
email/contact.玉
p Thanks
p Name #{name}
p Email #{email}
p Subject #{subject}
p Message #{message}
并将其渲染成 HTML:
var jade = require('jade');
var templatePath = __dirname + '/contact.jade';
app.route('/contact')
.post(function(req, res) {
var payload = {
to: req.body.email,
from: 'example@example.com',
subject: req.body.subject,
html: jade.renderFile(templatePath, req.body)
};
//...
});
我有一个使用 Node Sendgrid helper library 的简单联系表。
我想使用编译为 HTML 并添加正确上下文的模板 email/contact.jade
。我知道它需要进入 payload.html
值,但我仍然不知道如何使用模板发送电子邮件。
routes.js
app.route('/contact')
.post(function(req, res) {
var template = 'email/contact.jade';
var payload = {
to: req.body.email,
from: 'example@example.com',
subject: req.body.subject,
html: req.body.message
};
var email = new sendgridClient.Email(payload);
sendgridClient.send(email, function(err, json) {
if (err) {
return console.error(err);
} else {
res.redirect('/thanks');
}
});
});
email/contact.玉
p Thanks
p Name {{ name }}
p Email {{ email }}
p Subject {{ subject }}
p Message {{ message }}
首先,我不确定您的 jade 语法是否正确。你可以试试这个:
email/contact.玉
p Thanks
p Name #{name}
p Email #{email}
p Subject #{subject}
p Message #{message}
并将其渲染成 HTML:
var jade = require('jade');
var templatePath = __dirname + '/contact.jade';
app.route('/contact')
.post(function(req, res) {
var payload = {
to: req.body.email,
from: 'example@example.com',
subject: req.body.subject,
html: jade.renderFile(templatePath, req.body)
};
//...
});