发送usiing node.js的批量电子邮件

时间:2016-12-26 09:29:53

标签: node.js nodemailer

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

1 个答案:

答案 0 :(得分:5)

在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命令
  • 用于向AWS SES发送消息的nodemailer-ses-transport
  • nodemailer-sparkpost-transport,用于通过SparkPost的Web API发送消息
  • nodemailer-stub-transport仅用于返回消息,最有可能用于测试目的
  • nodemailer-wellknown,用于通过其中一种支持的服务发送消息
  • nodemailer-postmark-transport,用于通过Postmark的Web API发送消息
  • 添加你的(参见此处的传输api文档)

以下是Nodemailer GitHub repo中的一个简单用法示例

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美元,它也很便宜。