Node.js Zoho mail称节点Js中的535身份验证失败

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

我正在使用Node Express和MongoDB创建一个应用程序。用户创建后,希望向用户发送一封成功的邮件。我正在使用zohomail,可以使用这些用户名和密码在线登录zohomail。但是当我尝试发送邮件时,我得到了一个错误

  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,
  },
});