Node.js Zoho mail称节点Js中的535身份验证失败
我正在使用Node Express和MongoDB创建一个应用程序。用户创建后,希望向用户发送一封成功的邮件。我正在使用zohomail,可以使用这些用户名和密码在线登录zohomail。但是当我尝试发送邮件时,我得到了一个错误Node.js Zoho mail称节点Js中的535身份验证失败,node.js,nodemailer,zoho,Node.js,Nodemailer,Zoho,我正在使用Node Express和MongoDB创建一个应用程序。用户创建后,希望向用户发送一封成功的邮件。我正在使用zohomail,可以使用这些用户名和密码在线登录zohomail。但是当我尝试发送邮件时,我得到了一个错误 code: 'EAUTH', response: '535 Authentication Failed', responseCode: 535, command: 'AUTH PLAIN' 这是我的代码 if(用户){ var transporter
code: 'EAUTH',
response: '535 Authentication Failed',
responseCode: 535,
command: 'AUTH PLAIN'
这是我的代码
if(用户){
var transporter=nodeEmailer.createTransport({
主机:“smtp.zoho.com”,
港口:465,
安全:true,//使用SSL
认证:{
用户:'sample@sample.com“,//zoho用户名
pass:'password'//zoho password##Heading##
}
});
var mailpoptions={
发件人:'sample@sample.com',
发送至:req.body.email,
主题:“已成功创建”,
html:“您好”+req.body.fname+,您已成功创建。'
};
transporter.sendMail(邮件选项,函数(错误,信息){
如果(错误){
console.log(错误);
}否则{
res.status(200).send(设置.status(“用户创建成功,请检查邮件”))
}
});
}
1/检查您的密码
2/检查2因素身份验证
您是否启用了Zoho的双因素身份验证
如果启用了它,则需要创建特定于应用程序的密码 谢谢
正如在评论中所说的那样
我在Zoho mail中启用了双因素身份验证(2FA)
因此,我登录我的帐户,进入双因素身份验证并获得特定于应用程序的密码
之后,我在NodeJS中使用了特定于应用程序的密码,而不是zoho mail密码
if (user) {
var transporter = nodemailer.createTransport({
host: 'smtp.zoho.com',
port: 465,
secure: true, // use SSL
auth: {
user: 'sample@sample.com', //zoho username
pass: 'application specific password' //Not zoho mail password because of 2FA enabled
}
});
var mailOptions = {
from: 'sample@sample.com',
to: req.body.email,
subject: 'Created Successfully',
html: '<h1>Hi ' + req.body.fname + ',</h1><p>You have successfully created.</p>'
};
transporter.sendMail(mailOptions, function(error, info) {
if (error) {
console.log(error);
} else {
res.status(200).send(setting.status("User created Successfully, Please Check your Mail"))
}
});
}
if(用户){
var transporter=nodeEmailer.createTransport({
主机:“smtp.zoho.com”,
港口:465,
安全:true,//使用SSL
认证:{
用户:'sample@sample.com“,//zoho用户名
pass:'特定于应用程序的密码'//由于启用了2FA,因此不是zoho邮件密码
}
});
var mailpoptions={
发件人:'sample@sample.com',
发送至:req.body.email,
主题:“已成功创建”,
html:“您好”+req.body.fname+,您已成功创建。'
};
transporter.sendMail(邮件选项,函数(错误,信息){
如果(错误){
console.log(错误);
}否则{
res.status(200).send(设置.status(“用户创建成功,请检查邮件”))
}
});
}
如果您来自印度,请将smtp.zoho.com
替换为smtp.zoho.in
中的smtp.zoho。样本如下:
const transporter = nodemailer.createTransport({
host: "smtp.zoho.in",
port: 465,
secure: true,
auth: {
user: process.env.ZOHO_EMAIL,
pass: process.env.ZOHO_PASSWORD,
},
});
是的,我的密码没问题。并且2FA通过Google Authenticator启用。如何创建特定于应用程序的密码?
const transporter = nodemailer.createTransport({
host: "smtp.zoho.in",
port: 465,
secure: true,
auth: {
user: process.env.ZOHO_EMAIL,
pass: process.env.ZOHO_PASSWORD,
},
});