使用带有NodeMailer包的Mailgun发送电子邮件

joq*_*que 19 node.js mailgun nodemailer

几天前,我意识到Google已经改变了Gmail帐户的安全性,特别是因为可以从应用程序发送电子邮件.谷歌搜索了一段时间后,我无法找到它的修复程序.所以,我使用了Mailgun.我创建了一个帐户并启用了商家验证功能.但是,我仍然无法发送电子邮件.我一直收到有关未找到请求的网址的错误消息.我怀疑,由于我还没有设置域,它没有选择默认提供的mailgun域.有人可以告诉我如何使用来自NodeMailer的Mailgun测试发送电子邮件,指示mailgun提供的沙箱名称.

在此先感谢何塞

小智 29

为mailgun创建了Nodemailer传输.

这是它的工作原理.

您可以npm install像使用任何软件包一样安装软件包,然后在空文件中安装:

var nodemailer = require('nodemailer');
var mg = require('nodemailer-mailgun-transport');

// This is your API key that you retrieve from www.mailgun.com/cp (free up to 10K monthly emails)
var auth = {
  auth: {
    api_key: 'key-1234123412341234',
    domain: 'sandbox3249234.mailgun.org'
  }
}

var nodemailerMailgun = nodemailer.createTransport(mg(auth));

nodemailerMailgun.sendMail({
  from: 'myemail@example.com',
  to: 'recipient@domain.com', // An array if you have multiple recipients.
  subject: 'Hey you, awesome!',
  text: 'Mailgun rocks, pow pow!',
}, function (err, info) {
  if (err) {
    console.log('Error: ' + err);
  }
  else {
    console.log('Response: ' + info);
  }
});
Run Code Online (Sandbox Code Playgroud)

用你的API替换你的API密钥并更改细节,你就可以开始了!

  • 使用此“ nodemailer-mailgun-transport”要注意,无法将nodemailer的icalEvent添加到电子邮件中(https://nodemailer.com/message/calendar-events/#1-send-a-request-event-as-a-字符串),伯特尔使用nodemailer.createTransport(...)来做到这一点。 (2认同)

小智 27

var nodemailer = require('nodemailer');
// send mail with password confirmation
var transporter = nodemailer.createTransport( {
    service:  'Mailgun',
    auth: {
     user: 'postmaster@sandboxXXXXXXXXXXXXXXXX.mailgun.org',
     pass: 'XXXXXXXXXXXXXXXX'   
    }
});
var mailOpts = {
    from: 'office@yourdomain.com',
    to: 'user@gmail.com',
    subject: 'test subject',
    text : 'test message form mailgun',
    html : '<b>test message form mailgun</b>'
};
transporter.sendMail(mailOpts, function (err, response) {
    if (err) {
     //ret.message = "Mail error.";
    } else {
     //ret.message = "Mail send.";
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 我什么时候在api_key/domain auth上使用它?或者它是一个/或 (3认同)