我正在使用 Node Express 和 MongoDB 创建一个应用程序。用户创建成功后,想要发送给用户的邮件。我正在使用 zohomail,并且可以使用这些用户名和密码在线登录 zohomail。但是当我尝试发送邮件时,出现错误
code: 'EAUTH',
response: '535 Authentication Failed',
responseCode: 535,
command: 'AUTH PLAIN'
这是我的代码
的帮助片段if (user) {
var transporter = nodemailer.createTransport({
host: 'smtp.zoho.com',
port: 465,
secure: true, // use SSL
auth: {
user: '[email protected]', //zoho username
pass: 'password' //zoho password## Heading ##
}
});
var mailOptions = {
from: '[email protected]',
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"))
}
});
}
谢谢你阮孟东
正如评论中所说。
我已在 Zoho mail 中启用了 2 因素身份验证 (2FA)。
因此,我在此处登录我的帐户,然后转到双因素身份验证并获取应用程序特定密码。
之后我在 Node Js 中使用应用程序特定密码而不是 zoho mail 密码。
if (user) {
var transporter = nodemailer.createTransport({
host: 'smtp.zoho.com',
port: 465,
secure: true, // use SSL
auth: {
user: '[email protected]', //zoho username
pass: 'application specific password' //Not zoho mail password because of 2FA enabled
}
});
var mailOptions = {
from: '[email protected]',
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"))
}
});
}
如果您来自印度,请将
smtp.zoho.com
替换为 smtp.zoho.in
,保持其他不变。示例如下:
const transporter = nodemailer.createTransport({
host: "smtp.zoho.in",
port: 465,
secure: true,
auth: {
user: process.env.ZOHO_EMAIL,
pass: process.env.ZOHO_PASSWORD,
},
});
1/ 检查您的密码。
2/检查2因素身份验证
您是否启用了 Zoho 的两因素身份验证?
如果启用它,您需要创建应用程序特定密码。
对于添加 2 因素身份验证并生成应用程序密码后仍然面临身份验证错误的任何人。如果您从欧盟创建 Zoho Mail 账户,请将您的主机更改为以下内容:
host: "smtp.zoho.eu"
如果您来自印度,请使用
smtppro.zoho.in
,它看起来像这样
const transporter: Transporter = nodemailer.createTransport({
service: "smtppro.zoho.in",
host: "smtppro.zoho.in",
port: 465,
secure: true,
auth: {
user: process.env.NEXT_PUBLIC_ZOHO_MAIL_ID,
pass: process.env.NEXT_PUBLIC_ZOHO_MAIL_PASSWORD,
},
});