节点 - 用于发送电子邮件的选项,发送网格和节点邮件之一或组合

Node - options for sending email, sendgrid and nodemailer one of them or combined

本文关键字:节点 组合 用于 电子邮件 选项 网格      更新时间:2023-09-26

节点中发送电子邮件的经验不多,正如我所看到的,有不同的选项可供选择。在以下情况下使用哪个选项?

将node-mailer与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) { ... });

仅使用没有节点邮件包的发送网格模块:

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(,或者我可以吗?但另一方面,我看不到在不同传输对象之间切换的情况。

附带的问题是如何将模板与此解决方案一起使用。我在官方指南中没有看到任何关于模板的内容,也没有在: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没问题。

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