Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何解决电子邮件发送问题”;“内部服务器错误”;在NodeJS中使用NodeEmailer_Javascript_Node.js_Express_Nodemailer - Fatal编程技术网

Javascript 如何解决电子邮件发送问题”;“内部服务器错误”;在NodeJS中使用NodeEmailer

Javascript 如何解决电子邮件发送问题”;“内部服务器错误”;在NodeJS中使用NodeEmailer,javascript,node.js,express,nodemailer,Javascript,Node.js,Express,Nodemailer,我想用nodemailer发送一封确认邮件,但在生产过程中,当我允许Gmail帐户使用不安全的应用程序时,即使它在本地工作,它也会显示internet服务器错误 我怎样才能解决这个问题 router.post(“/forgotPass)”,(请求、恢复、下一步)=>{ 异步瀑布([ 功能(完成){ 加密随机字节(20,(错误,buf)=>{ var token=buf.toString('hex'); 完成(错误,标记); }) }, 功能(令牌,完成){ user.findOne({email

我想用nodemailer发送一封确认邮件,但在生产过程中,当我允许Gmail帐户使用不安全的应用程序时,即使它在本地工作,它也会显示internet服务器错误

我怎样才能解决这个问题

router.post(“/forgotPass)”,(请求、恢复、下一步)=>{
异步瀑布([
功能(完成){
加密随机字节(20,(错误,buf)=>{
var token=buf.toString('hex');
完成(错误,标记);
})
},
功能(令牌,完成){
user.findOne({email:req.body.email},(err,user)=>{
如果(!用户){
请求flash(“错误”,“不存在具有此电子邮件地址的帐户!”);
log(“现在此电子邮件的帐户已存在!”)
返回res.redirect(“返回”);
}
user.resetPasswordToken=令牌;
user.resetPasswordDuration=Date.now()+3600000;//1小时
user.save((错误)=>{
完成(错误、令牌、用户);
log(“错误为”+err);
});
})
},
功能(令牌、用户、完成){
var smtpTransport=nodeMailer.createTransport({
服务:“Gmail”,
认证:{
用户:'abedkhan。noori10@gmail.com',
通过:process.env.GMAIL\u PW
}
});
var mailpoptions={
致:user.email,
来自:阿贝德坎。noori10@gmail.com',
主题:“密码重置!”,
文本:“您收到此电子邮件是因为您想在我的应用程序中重置密码。”+
“请单击下面的链接以完成此过程。”+
“http://“+req.headers.host+”/resetPass/“+token+”\n\n”+
“如果您没有请求,请忽略此电子邮件,您的密码将不会被更改。”
};
smtpTransport.sendMail(邮件选项,(错误)=>{
log('mail sent!');
req.flash(“成功”,“已向“+user.email+”发送电子邮件,并附有进一步说明”);
完成(呃,‘完成’);
});
}
],函数(err){
如果(错误){
返回下一个(错误);
}res.redirect(“/放弃通过”);
});
});

您需要为您的帐户启用不太安全的应用程序访问-如果未启用,Google不允许您通过程序使用您的帐户。不过,您可以在GMail中启用双因素身份验证,并使用应用程序密码作为密码