我在我的投资组合网站上使用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吗?
答案 0 :(得分:0)
您必须从谷歌启用安全性较低的应用。
我有同样的问题,但是我通过转到以下网址解决了这个问题(使用我要发送邮件的帐户连接到谷歌时):
https://www.google.com/settings/security/lesssecureapps
我启用了不太安全的应用。
你完成了!