2014-09-05 48 views
4

我已经完成了使用Nodemailer和AngularJS和NodeJS发送电子邮件的基本电子邮件设置,并且我已经将项目部署在heroku上。带有Gmail服务的Nodemailer无法在heroku上工作

当我在heroku上运行应用程序时,电子邮件似乎正常工作,但是当我将它部署到Heroku时,不会发送电子邮件。

对于身份验证,我使用的是Gmail地址,我还有一个bcc到另一个Gmail地址。所以frombcc地址是两个不同的Gmail地址。地址from与用于认证的地址相同。

有人能帮我解决这个问题吗?

编辑:添加代码

var nodemailer = require('nodemailer'); 
var transporter = nodemailer.createTransport({ 
    service: 'Gmail', 
    auth: { 
     user: '[email protected]', 
     pass: 'foobar' 
    } 
}); 

router.post('/send',function(req,res){ 

    var mailOptions = { 
     from: 'Foo Bar ✔ <[email protected]>', 
     to: req.body.email, 
     subject: "Hello " + req.body.email, 
     text: 'Hello ' + req.body.email + '✔', 
     html: "<p>Hello " + req.body.email + " </p>", 
     bcc: "[email protected]" 
    }; 
    transporter.sendMail(mailOptions, function(error, info){ 
     if(error){ 
      console.log(error); 
     }else{ 
      console.log('Message sent: ' + info.response); 
      res.send(200); 
     } 
    });   
}); 
+0

请包括错误我ssage。 – 2014-09-05 20:18:44

+0

@PeterLyons:错误:登录无效,responseCode:534,代码:'EAUTH'。 – skip 2014-09-05 20:29:49

+0

那么,有没有什么理论?似乎很明显错误的凭据给我。 – 2014-09-05 20:34:37

回答

0

尝试更新nodemailer包(用命令 “nodemailer NPM更新”)

var transporter = nodemailer.createTransport({ 
    host: 'smtp.gmail.com', 
    port: 465, 
    secure: true, 
    auth: { 
     user: '[email protected]', // Your email id 
     pass: 'pwd123' // Your password 
    }, 
    tls: { 
     // do not fail on invalid certs 
     rejectUnauthorized: false 
    } 
}); 
router.post('/send',function(req,res){ 

    var mailOptions = { 
     from: 'Foo Bar ✔ <[email protected]>', 
     to: req.body.email, 
     subject: "Hello " + req.body.email, 
     text: 'Hello ' + req.body.email + '✔', 
     html: "<p>Hello " + req.body.email + " </p>", 
     bcc: "[email protected]" 
    }; 
    transporter.sendMail(mailOptions, function(error, info){ 
     if(error){ 
      console.log(error); 
     }else{ 
      console.log('Message sent: ' + info.response); 
      res.send(200); 
     } 
    });   
}); 
2

我相信这是问题与谷歌帐户的安全性。 - 由于未知设备(位置),Google屏蔽了您的登录信息以使用邮件功能。

几个步骤来验证这一点:

这可以通过时间分辨

大写字母+小写字母+特殊符号+数字

相关问题