使用Nodemailer对接Zoho Mail时遭遇535认证错误求助
解决Zoho Mail + Nodemailer 535认证错误的排查方案
确认主账号SMTP服务状态
登录主账号的Zoho Mail后台,进入「设置」>「邮件账户」>「POP/IMAP/SMTP」,确保SMTP访问权限已开启,同时核对页面显示的SMTP主机、端口与你Nodemailer配置完全一致(比如美国区是smtp.zoho.com+465/587,欧洲区对应zmtp.zoho.eu)。验证应用专用密码的生成逻辑
若主账号开启了两步验证,生成应用专用密码时需选择「邮件」类应用场景,且确保生成的密码完整复制(无空格或遗漏),替换Nodemailer配置中auth.pass字段。添加服务器IP到Zoho白名单
在Zoho Mail的「设置」>「邮件账户」>「POP/IMAP/SMTP」>「SMTP设置」里,找到「允许的IP地址」,将你运行Nodemailer服务的服务器公网IP添加进去,避免Zoho拦截陌生IP的SMTP请求。优化Nodemailer配置细节
尝试使用Nodemailer内置的Zoho配置模板,替代手动填写主机和端口:const transporter = nodemailer.createTransport({ service: 'Zoho', auth: { user: '你的完整邮箱地址@xxx.com', pass: '应用专用密码或主密码(未开两步验证时)' } });若手动配置,需确保端口与secure选项匹配:465端口设
secure: true,587端口设secure: false并开启TLS:const transporter = nodemailer.createTransport({ host: 'smtp.zoho.com', port: 587, secure: false, auth: { user: '你的完整邮箱地址@xxx.com', pass: '应用专用密码' }, tls: { rejectUnauthorized: true } });检查账号安全状态
进入Zoho账号的「安全中心」,查看是否有异常登录记录,若存在多次失败的SMTP登录尝试,可能触发了临时限制,需手动解锁或重置SMTP相关权限。确认企业版账号的权限设定
若主账号是Zoho企业版邮箱,需联系管理员确认:- 域名已完成Zoho的所有权验证
- 管理员未限制该账号的SMTP发送权限
- 企业版是否要求使用特定的SMTP后缀(比如
smtp.zohomail.com而非smtp.zoho.com)
内容的提问来源于stack exchange,提问作者Illian
相关产品推荐
相关产品推荐

