使用nodemailer发送带有附件和html数据的邮件
我遇到的问题是,我只能发送附件或模板数据的电子邮件,但我还没有find一种方法来发送两个。
这是我的代码:
var EmailTemplate = require('email-templates').EmailTemplate; var template = new EmailTemplate('templates/welcome'); template.render({}, function(err, results) { var send = transporter.templateSender({ from: '', 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); });
如果按照上面所示的方式执行,名称模板variables将呈现,但图片不显示。 如果我反而做
var send = transporter.templateSender(template, ...
那么附件呈现,而不是模板variables。
我知道我可以使用像Jade或Handlebars这样的模板包来处理这种事情,但是当nodemailer拥有我需要的所有function时,这看起来像是矫枉过正。
任何帮助,将不胜感激。 谢谢!
我正在做同样的事情,我浪费了我宝贵的4个小时才去解决这个问题,但是最后我find了答案。
保留附件的地方在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);
希望它可以帮助别人!