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

几天前,我意识到Google已经改变了Gmail账户的安全性,特别是从应用程序发送电子邮件的可能性。 谷歌search了一段时间后,我找不到解决办法。 所以,我使用了Mailgun。 我创build了一个帐户,并启用了业务validation。 但是,我仍然不能发送电子邮件。 我不断收到有关请求的URL未被发现的错误。 我怀疑,因为我还没有build立一个域,它不select它默认提供的mailgun域。 有人能告诉我如何testing使用MailMun发送电子邮件从NodeMailer指出由mailgun提供的沙箱名称。

在此先感谢何塞

我创build了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); } }); 

将您的API密钥replace为您的密钥并更改详细信息,然后就可以开始使用了!

 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."; } }); 

它工作的时候,我也添加到auth对象的域(不只是api_key)。 喜欢这个:

 var auth = { auth: { api_key: 'key-12319312391', domain: 'sandbox3249234.mailgun.org' } };