如何让nodemailer与heroku一起工作?

时间:2017-06-23 20:37:29

标签: heroku nodemailer

我在我的投资组合网站上使用nodemailer和gmail,用于直接向我的电子邮件发送消息。这适用于我的本地服务器(localhost:3000),但在将其部署到heroku时不起作用。然而,我收到了来自Gmail的消息,有人访问了您的帐户'在我与heroku一起部署后,这是相关的。

这是我的app.js:

const nodemailer = require('nodemailer');

let port = process.env.PORT || 3000;
let transporter = nodemailer.createTransport({
    service: 'gmail',
    secure: false,
    port: 25,
    auth:{
        user: 'myownemail@gmail.com',
        pass: '**************'
    }
})

let mailOptions = {
    from: '"Portfolio Message" <myotheremail@gmail.com> ',
    to: 'myownemail@gmail.com',
    subject: '',
    text: '',
    html: ''
}

app.post('/message/new',function(req,res){
    res.writeHead(200, { 'Content-Type': 'application/json' });
    res.write(JSON.stringify({ status: "OK" }));
    res.end();
    mailOptions['subject'] = 'new portfolio message from ' + req.body.name ;
    mailOptions['text'] = req.body.message + " \n      " + " phone number or email : " + req.body.phone_or_email;

    transporter.sendMail(mailOptions,(error,info)=>{
        error?console.log('error',error):console.log('success');
    });

})

我已经在app.js中抽取了一些我认为与此问题无关的其他代码。任何人都可以告诉我如何使用heroku吗?

1 个答案:

答案 0 :(得分:0)

您必须从谷歌启用安全性较低的应用。

我有同样的问题,但是我通过转到以下网址解决了这个问题(使用我要发送邮件的帐户连接到谷歌时):

https://www.google.com/settings/security/lesssecureapps

我启用了不太安全的应用。

你完成了!