使用 node.js 批量发送电子邮件

Bulk email sending usiing node.js

我正在尝试制作一个小型仪表板,我可以在其中使用我自己的 SMTP 服务器发送大量电子邮件。我想为此使用节点,任何人都可以指导从哪里开始我想从不同的 SMTP 服务器发送邮件。

在 Node 中发送电子邮件的最常见方式是使用 Nodemailer。它有一个很好的文档。

您可以使用它通过任何 SMTP 服务器发送电子邮件,并且有许多预配置的方式可以使用 Gmail 或其他专门的传输方式发送电子邮件。

可用的传输是 - 来自自述文件:

  • nodemailer-mailgun-transport 用于通过 Mailgun 的 Web 发送邮件 API
  • nodemailer-mandrill-transport 用于通过 Mandrill 的 Web 发送消息 API
  • nodemailer-pickup-transport 用于将邮件存储到取件文件夹
  • nodemailer-sailthru-transport 用于通过 Sailthru 的 Web 发送消息 API
  • nodemailer-sendgrid-transport 用于通过 SendGrid 的 Web 发送消息 API
  • nodemailer-sendmail-transport 用于将消息通过管道传送到 sendmail 命令
  • nodemailer-ses-transport 用于向 AWS SES 发送消息
  • nodemailer-sparkpost-transport 用于通过 SparkPost 的 Web 发送消息 API
  • nodemailer-stub-transport 仅用于返回消息,很可能用于测试目的
  • nodemailer-以通过众多受支持的服务之一发送消息而闻名
  • nodemailer-postmark-transport 用于通过 Postmark 的 Web 发送邮件 API
  • 添加你的(请参阅此处的传输 api 文档)

这是 Nodemailer GitHub 存储库中的一个简单用法示例

var nodemailer = require('nodemailer');

// create reusable transporter object using the default SMTP transport
var transporter = nodemailer.createTransport('smtps://user%40gmail.com:pass@smtp.gmail.com');

// setup e-mail data with unicode symbols
var mailOptions = {
    from: '"Fred Foo " <foo@blurdybloop.com>', // sender address
    to: 'bar@blurdybloop.com, baz@blurdybloop.com', // list of receivers
    subject: 'Hello ✔', // Subject line
    text: 'Hello world ', // plaintext body
    html: '<b>Hello world </b>' // html body
};

// send mail with defined transport object
transporter.sendMail(mailOptions, function(error, info){
    if(error){
        return console.log(error);
    }
    console.log('Message sent: ' + info.response);
});

参见:

对于群发邮件,最好使用像 Mailgun 或 Mandrill 这样的服务,因为使用 SMTP 自己进行群发邮件要确保您的电子邮件通过垃圾邮件过滤器并且您没有被列入发送黑名单会很麻烦太多的电子邮件,你不超过你的 ISP 等的任何限制。发送电子邮件比人们通常想象的要复杂,而且在 Mailgun 中每封电子邮件的价格为 0.0001 美元,它也非常便宜。