Nodemailer在Ubuntu服务器无法运行:邮件发送连接超时问题
解决Ubuntu Server部署后SMTP连接超时问题
先指出你配置里的明显笔误:requireTLS: incutrue 应改为 requireTLS: true 或 false,这可能是触发问题的原因之一。
按以下步骤排查解决:
1. 检查服务器网络连通性
- 测试SMTP端口是否可访问:
在Ubuntu服务器上执行:
若输出显示nc -zv smtp.hostinger.com 465Connection refused或超时,说明端口被阻断:- 检查服务器防火墙:用ufw的话,执行
sudo ufw allow 465/tcp开放端口 - 确认云服务商是否封禁邮件端口:多数云平台(如AWS、阿里云)默认封禁465/25端口,需去控制台申请解封,或改用Hostinger的587端口(STARTTLS模式)
- 检查服务器防火墙:用ufw的话,执行
2. 修正SMTP配置
你的配置存在参数冲突和过时设置,调整为以下两种可行方案:
方案一:使用465端口(SSL模式)
host: "smtp.hostinger.com", secure: true, // 465端口对应SSL连接,设为true port: 465, tls: { ciphers: "TLSv1.2", // 弃用不安全的SSLv3,改用TLS1.2/1.3 }, auth: { user: process.env.GRIEVANCE_EMAIL, pass: process.env.GRIEVANCE_EMAIL_PASSWORD, }, debug: true,
注:移除secureConnection和requireTLS,secure: true已启用SSL连接,这两个参数会造成冲突
方案二:使用587端口(STARTTLS模式,兼容性更好)
host: "smtp.hostinger.com", secure: false, // 587端口先建立普通连接,再升级为TLS port: 587, requireTLS: true, // 强制启用STARTTLS tls: { ciphers: "TLSv1.2", // 临时测试可添加rejectUnauthorized: false,确认正常后移除,避免安全风险 }, auth: { user: process.env.GRIEVANCE_EMAIL, pass: process.env.GRIEVANCE_EMAIL_PASSWORD, }, debug: true,
3. 验证环境变量
确保Ubuntu服务器上已正确设置GRIEVANCE_EMAIL和GRIEVANCE_EMAIL_PASSWORD环境变量,避免拼写错误或未加载的情况。
4. 检查IP信誉
若以上步骤无效,可能是服务器IP被Hostinger列入垃圾邮件黑名单,联系Hostinger客服查询IP状态,或尝试更换服务器IP。
内容的提问来源于stack exchange,提问作者Mouzin Gulzar
相关产品推荐
相关产品推荐

