ste*_*tis 4 node.js nodemailer
当我尝试从 nodemailer 发送电子邮件时,出现错误: EAUTH API 我尝试使用 Hotmail 和 Gmail 作为我的服务,正如我从文档中了解到的那样,如果 Gmail 不起作用,请不要使用它。然而,这似乎不是问题。
我想使用此电子邮件在我的应用程序中启用忘记密码功能
代码:
var smtpTransport = nodemailer.createTransport({
service: 'Hotmail',
auth: {
user: email,
pass: pass
}
});
router.post('/forgotpassword', function(req, res){
async.waterfall([
function(done) {
User.findOne({
email: req.body.email
}).exec(function(err, user) {
if (user) {
done(err, user);
} else {
done('User not found.');
}
});
},
function(user, done) {
// create the random token
crypto.randomBytes(20, function(err, buffer) {
var token = buffer.toString('hex');
done(err, user, token);
});
},
function(user, token, done) {
User.findByIdAndUpdate({ _id: user._id }, { reset_password_token: token, reset_password_expires: Date.now() + 86400000 }, { upsert: true, new: true }).exec(function(err, new_user) {
done(err, token, new_user);
});
},
function(token, user, done) {
var data = {
to: user,
from: email,
template: 'forgot-password-email',
subject: 'Password help has arrived!',
context: {
url: 'http://localhost:3000/user/reset_password?token=' + token,
name: req.body.email
}
};
smtpTransport.sendMail(data, function(err) {
if (!err) {
return res.json({ message: 'Kindly check your email for further instructions' });
} else {
return done(err);
}
});
}
], function(err) {
return res.status(422).json({ message: err });
});
});
Run Code Online (Sandbox Code Playgroud)
我的电子邮件和密码是正确的。
邮递员的错误是
{“消息”:{“代码”:“EAUTH”,“命令”:“API”}}
我认为你应该更新你的代码并需要一个模块来发送:
var nodemailer = require('nodemailer');
var smtpTransport = require('nodemailer-smtp-transport');
var smtpTransport = nodemailer.createTransport(smtpTransport({
service: 'Hotmail',
auth: {
user: email,
pass: pass
}
}));
Run Code Online (Sandbox Code Playgroud)
作为安全预防措施,Google 可能会要求您在登录新设备或应用程序时完成一个名为“解锁验证码”的附加步骤。
您可能需要手动允许访问您的 Google 帐户。
使用浏览器登录您的 Google 帐户,然后访问下面的链接将其解锁:点击此处
单击“允许”按钮后,您应该看到以下消息:
帐户访问已启用。请尝试从新设备或应用程序再次登录您的 Google 帐户。
并允许安全性较低的应用程序访问:安全性较低的应用程序
我测试一下,为我工作
| 归档时间: |
|
| 查看次数: |
4213 次 |
| 最近记录: |