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

Fir*_*esh 3 node.js nodemailer

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

rsp*_*rsp 7

在Node中发送电子邮件的最常见方法是使用Nodemailer。它具有出色的文档。

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

可用的传输是-从README:

  • 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);
});
Run Code Online (Sandbox Code Playgroud)

看到:

对于批量邮件,最好使用Mailgun或Mandrill之类的服务,因为使用SMTP批量发送邮件本身很麻烦,以确保您的电子邮件通过垃圾邮件过滤器并且不会因为发送过多电子邮件而被列入黑名单,您不会超出ISP等的任何限制。发送电子邮件比人们通常认为的更为复杂,并且Mailgun中每封电子邮件的价格为0.0001美元,这也非常便宜。