使用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: '<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); }); 

如果按照上面所示的方式执行,名称模板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); 

希望它可以帮助别人!