我遇到的问题是我只能发送带有附件或模板数据的电子邮件,但我还没有找到发送两者的方法。
这是我的代码:
var EmailTemplate = require('email-templates').EmailTemplate;
var template = new EmailTemplate('templates/welcome');
template.render({}, function(err, results) {
var send = transporter.templateSender({
from: '<ouremail@gmail.com>',
html: results.html,
attachments: [{
filename: 'file1.png',
path: 'templates/file1.png',
cid: 'file1'
}, {
filename: 'file2.png',
path: 'templates/file2.png',
cid: 'file2'
}]
});
send({
to: String(user.emailAddress),
subject: 'Welcome to the Our Site!'
}, {name: user.firstName}, callback);
});
如果我按照上面显示的方式进行操作,则会显示名称模板变量,但图片不会显示。如果我改为
var send = transporter.templateSender(template, ...
然后呈现附件,而不是模板变量。
我知道我可以使用像Jade或Handlebars这样的模板包来做这种事情,但是当nodemailer拥有我需要的所有功能时,这似乎有些过分。
任何帮助将不胜感激。 谢谢!
答案 0 :(得分:1)
我做的完全一样,在Go LIVE之前我浪费了宝贵的4个小时来解决这个问题。但最后我找到了答案。
保留附件的位置在send()
部分而不是templateSender()
,因此代码应如下所示:
send({
to: String(user.emailAddress),
subject: 'Welcome to the Our Site!',
attachments:[{
filename: 'file1.png',
path: 'templates/file1.png',
cid: 'file1'
}, {
filename: 'file2.png',
path: 'templates/file2.png',
cid: 'file2'
}]
}, {name: user.firstName}, callback);
希望它有所帮助!