节点 – 用于发送电子邮件,sendgrid和nodemailer其中之一或组合的选项

在节点中发送电子邮件并不那么经验丰富,我可以看到有不同的选项可供select。 在以下情况下使用哪个选项?

与sengrid一起使用节点邮件程序:
正如我所看到的,我必须添加额外的包"nodemailer-sendgrid-transport"来强制他们一起工作。
因为var transporter = nodemailer.createTransport({ service: 'SendGrid', auth: {...}); 将无法工作。 (总是返回错误的用户名/密码)

 var nodemailer = require('nodemailer'), sendGridTransport = require('nodemailer-sendgrid-transport'); var options = { auth: { api_user: 'blabla', api_key: 'blabla' } }; var client = nodemailer.createTransport(sendGridTransport(options)); var email = { to: ['joe@foo.com', 'mike@bar.com'], from: 'roger@tacos.com', subject: 'Hi there', text: 'Awesome sauce', html: '<b>Awesome sauce</b>' }; client.sendMail(email, function(err, info) { ... }); 

只使用没有nodemailer包的sendgrid模块:

 var sendgrid = require('sendgrid')('blabla', 'blabla'); var email = { to: ['joe@foo.com', 'mike@bar.com'], from: 'roger@tacos.com', subject: 'Hi there', text: 'Awesome sauce', html: '<b>Awesome sauce</b>' }; sendgrid.send(email, function(err, json) { ... }); 

因此,第二个例子中,我只包含一个包(sengrid),第一个包含两个包(nodemailer和nodemailer-sendgrid-transport)。 我发现第一种方法比第二种方法更大,因为我可以更新或完全切换到其他服务传输(例如gmail),或者我可以吗? 但另一方面,我没有看到在不同的运输对象之间切换的情况。

侧面的问题appart所有这一切是如何使用此解决scheme的模板。 我没有在官方指南中看到关于模板的任何内容,也不在: https : //github.com/sendgrid/sendgrid-nodejs,也不在: https : //github.com/andris9/Nodemailer :

电子邮件模板是完全不同的故事,除此之外,我需要安装新的软件包,将处理它?
最后,我觉得我发布了非常迟钝的问题。

我使用Mandrill的nodemailer没有任何问题。

这是在我的情况下工作的代码,但你不提到你的:

 // Create a SMTP transport object var transport = nodemailer.createTransport("SMTP", { service: mainConfigFile.smtpServer.service, // use well known service auth: { user: mainConfigFile.smtpServer.user, pass: mainConfigFile.smtpServer.pass } }); 

请注意,凭证存储在mainConfigFile中,但是清楚的是它的意图。

我认为你应该和nodemailer合适。

你能提供有关你收到的错误的更多细节吗?