即使凭据错误,nodemailer verify 也会返回成功
nodemailer verify is returning success even with bad credentials
所以我正在尝试创建一个 gmail 客户端作为一个学习项目。我正在使用 nodemailer 模块来验证凭据和发送邮件。我的代码如下
let data ;
req.setEncoding('utf8') ;
await req.on('data', (chunk) => {
data = query.parse(chunk) ;
});
const mailer = nodemailer.createTransport({service: 'gmail'}) ;
mailer.options.auth = await data ;
mailer.verify((err, suc) => {
if (mailer.options.auth === undefined) {
console.log("No Credentials") ;
}
else if (err) {
console.log("Error : ") ;
} else {
console.log("success") ;
}
}) ;
PS : the function wrapping it is a async arrow function
当从表单收到的 post 数据为空时,它会正确记录 "No Credentials"
,即使输入的凭据错误,它也会记录 "success"
。希望尽快解决,先谢谢了。
我自己试过了,得出了这两个结论:
- 在使用
createTransport()
方法创建 Mail
对象后,我还没有找到任何方法来重新设置 auth
属性。也许有,也许没有。你将不得不调查它。
verify()
方法不检查 auth
对象是否已定义,而是检查它包含的属性是否已定义且有效
但这是我所做的并且有效:
// the function returns an object of type { user: string, pass: string }
const credentials = await getMyAuthData();
const config = {
service: 'Gmail',
auth: credentials
};
const mailer = nodemailer.createTransport(config);
mailer.verify((error, success) => {
if (error) throw error;
console.log(success);
});
所以我正在尝试创建一个 gmail 客户端作为一个学习项目。我正在使用 nodemailer 模块来验证凭据和发送邮件。我的代码如下
let data ;
req.setEncoding('utf8') ;
await req.on('data', (chunk) => {
data = query.parse(chunk) ;
});
const mailer = nodemailer.createTransport({service: 'gmail'}) ;
mailer.options.auth = await data ;
mailer.verify((err, suc) => {
if (mailer.options.auth === undefined) {
console.log("No Credentials") ;
}
else if (err) {
console.log("Error : ") ;
} else {
console.log("success") ;
}
}) ;
PS : the function wrapping it is a async arrow function
当从表单收到的 post 数据为空时,它会正确记录 "No Credentials"
,即使输入的凭据错误,它也会记录 "success"
。希望尽快解决,先谢谢了。
我自己试过了,得出了这两个结论:
- 在使用
createTransport()
方法创建Mail
对象后,我还没有找到任何方法来重新设置auth
属性。也许有,也许没有。你将不得不调查它。 verify()
方法不检查auth
对象是否已定义,而是检查它包含的属性是否已定义且有效
但这是我所做的并且有效:
// the function returns an object of type { user: string, pass: string }
const credentials = await getMyAuthData();
const config = {
service: 'Gmail',
auth: credentials
};
const mailer = nodemailer.createTransport(config);
mailer.verify((error, success) => {
if (error) throw error;
console.log(success);
});