Javascript 节点-用于发送电子邮件、sendgrid和NodeEmailer的选项其中一个或组合

Javascript 节点-用于发送电子邮件、sendgrid和NodeEmailer的选项其中一个或组合,javascript,node.js,email,sendgrid,nodemailer,Javascript,Node.js,Email,Sendgrid,Nodemailer,在节点中发送电子邮件的经验并不丰富,正如我所看到的,有不同的选项可供选择。在以下场景中使用哪个选项 将节点邮件器与sengrid一起使用: 正如我所看到的,我必须添加额外的包“nodemailer-sendgrid-transport”,以迫使它们协同工作因为var transporter=nodeEmailer.createTransport({service:'SendGrid',auth:{…});不起作用。(总是返回错误的用户名/密码) var nodemailer=require('n

在节点中发送电子邮件的经验并不丰富,正如我所看到的,有不同的选项可供选择。在以下场景中使用哪个选项

将节点邮件器与sengrid一起使用:
正如我所看到的,我必须添加额外的包
“nodemailer-sendgrid-transport”
,以迫使它们协同工作
因为
var transporter=nodeEmailer.createTransport({service:'SendGrid',auth:{…});
不起作用。(总是返回错误的用户名/密码)

var nodemailer=require('nodemailer'),
sendGridTransport=require('nodemailer-sendgrid-transport');
变量选项={
认证:{
api_用户:“blabla”,
api_键:“blabla”
}
};
var client=nodeEmailer.createTransport(sendGridTransport(选项));
var电子邮件={
致:['joe@foo.com', 'mike@bar.com'],
发件人:'roger@tacos.com',
主题:“你好”,
文字:“很棒的酱汁”,
html:“很棒的酱汁”
};
sendMail(电子邮件,函数(err,info){…});
只使用sendgrid模块而不使用NodeEmailer包:

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) { ... });
var sendgrid=require('sendgrid')('blabla','blabla');
var电子邮件={
致:['joe@foo.com', 'mike@bar.com'],
发件人:'roger@tacos.com',
主题:“你好”,
文字:“很棒的酱汁”,
html:“很棒的酱汁”
};
sendgrid.send(电子邮件,函数(err,json){…});
因此,在第二个示例中,我将只包含一个包(sengrid),在第一种方法中,我必须包含两个包(NodeEmailer和NodeEmailer sendgrid transport)。我发现第一种方法比第二种方法更具抽象性,因为我可以更新或完全切换到其他服务传输(例如gmail)或者我可以吗?但另一方面,我不认为在不同的传输对象之间切换是合适的

附带问题:所有这些都是如何在这个解决方案中使用模板。我在官方指南中没有看到任何关于模板的内容,也没有在:或在::


电子邮件模板与此完全不同,我需要安装新的软件包来处理它?
最后,我觉得我提出了一个非常迟钝的问题。

我使用了带有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中,但很清楚其目的是什么

我想你应该和诺德勒相处得很好

您能否提供有关收到的错误的更多详细信息

// 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
    }
});