背景
最近在部署一个 Next.js 项目到阿里云 Serverless FC,使用 NextAuth v5 + Nodemailer 实现邮箱验证码登录。本地开发一切正常,但部署后点击邮箱登录,页面一直转圈,最终报 Server error - Configuration。
排查
一开始以为是环境变量没配对,反复检查了 EMAIL_SERVER 和 EMAIL_FROM,确认无误。
后来意识到问题可能出在网络层面——云服务商通常会封锁 SMTP 端口 25,防止被滥用发送垃圾邮件。
解决方案
把 SMTP 配置从端口 25 改为 SSL 端口 465:
- EMAIL_SERVER=smtp://username:authcode@smtp.163.com:25
+ EMAIL_SERVER=smtps://username:authcode@smtp.163.com:465
两个变化:
- 协议加个
s:smtp→smtps - 端口换成
465
重新部署后,邮箱登录正常。
小结
如果你在云函数/Serverless 环境中使用 Nodemailer 发送邮件失败,优先检查端口问题。大多数云服务商(阿里云、AWS、GCP 等)都会封锁 25 端口,改用 465(SSL)或 587(TLS)即可。