javascript - nodemailer 登录无效:535 身份验证失败
问题描述
我正在尝试在我的节点应用程序中使用 nodemailer(npm 包)通过联系页面发送电子邮件。它给了我这个 535 Authentication Failed 错误,而我可以向您保证我的电子邮件和密码是绝对正确的。
var express = require('express');
var router = express.Router();
const nodemailer = require("nodemailer");
require('dotenv').config();
router.route('/')
.post((req, res)=>{
const emailData=req.body;
let transporter = nodemailer.createTransport({
host: "smtp.zoho.in",
port: 465,
secure: true, // true for 465, false for other ports
auth: {
user: process.env.EMAIL_ID, // generated ethereal user
pass: process.env.EMAIL_PASS, // generated ethereal password
},
tls:{
rejectUnauthorized: false
}
});
let info = transporter.sendMail({
from: process.env.EMAIL_ID, // sender address
to: process.env.EMAIL_ID, // list of receivers
subject: "Quengenesis: Contact Message", // Subject line
text: `
From: ${emailData.fName} ${emailData.lName}
Email: ${emailData.email}
Phone: ${emailData.phone}
Message: ${emailData.message}`, // plain text body
// html: "<b>Hello world?</b>", // html body
});
// console.log("Message sent: %s", info.messageId);
// console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));
// verify connection configuration
transporter.verify(function(err, success) {
if (err) {
res.send('There is a problem in the server, please try again later '+ err);
}
else {
res.send('Your message was sent successfully');
}
});
})
module.exports = 路由器;
解决方案
我有一个基于域的电子邮件地址,例如 you@yourdomain.com,我收到了这个错误。
我的解决方案是使用
host: 'smtppro.zoho.in'
代替
host: "smtp.zoho.com"
这在本文中记录
完整的 createTransport
let transporter = nodemailer.createTransport({
host: 'smtppro.zoho.in',
secure: true,
port: 465,
auth: {
user: YOU@YOURDOMAIN.COM,
pass: ZOHO_APP_PASSWORD,
},
});
推荐阅读
- javascript - 如何将类绑定到需要在 Vue.js (v1) 中更改的方法
- javascript - Office.js recognizing ContentControl positions in the document
- redux - Flutter 类型的中间件
- ios - 将 GMSAutocompleteViewController 设置为仅特定于状态
- python - 在多维 numpy 数组中均匀分布索引
- android - 片断在背压上重叠
- android - react-native 制作本地 json 文件
- ldap - LDAP - LDIF 添加属性错误:text="attributeTypes: value #0 invalid per syntax"
- javascript - 如何在比较当前元素和下一个元素时从数组中获取最后一个元素?
- java - FunctionalInterface 不是注释类型。我正在使用 java 8 & eclipse 氧气