You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置Mailgun用于NextAuth时遭遇535认证失败问题求助

解决NextAuth + Mailgun 535认证失败问题

1. 修正环境变量键名错误

你的环境变量里写的是MAIL_SERVER_HOST,但代码中读取的是EMAIL_SERVER_HOST,这会导致SMTP主机值为空,直接触发认证失败。统一环境变量键名如下:

EMAIL_SERVER_HOST="smtp.mailgun.org"
EMAIL_SERVER_PORT="587"
EMAIL_SERVER_USER="postmaster@mydomain"
EMAIL_SERVER_PASSWORD="key-**********"
EMAIL_FROM="你的发件邮箱@mydomain"

注意补充EMAIL_FROM配置,否则邮件发送会缺失发件人地址。

2. 验证Mailgun认证信息准确性

  • SMTP用户名:必须是你在Mailgun绑定的域名对应的postmaster@<你的Mailgun域名>,比如绑定的是mg.yourdomain.com,用户名就是postmaster@mg.yourdomain.com,确认域名部分无拼写错误。
  • SMTP密码:不是Mailgun账号密码,是该域名对应的SMTP密钥,在Mailgun控制台的域名设置中获取,格式为key-xxxxxxxxxxxxxx,确保复制时无遗漏或多余字符。

3. 检查端口与加密配置

端口587是合法的,但NextAuth的EmailProvider默认使用STARTTLS加密,若服务器网络拦截587端口流量,可尝试切换到465端口(SSL加密),需明确添加secure: true配置:

EmailProvider({
    server: {
        host: process.env.EMAIL_SERVER_HOST,
        port: 465,
        secure: true,
        auth: {
            user: process.env.EMAIL_SERVER_USER,
            pass: process.env.EMAIL_SERVER_PASSWORD,
        },
    },
    // 其他配置项...
}),

4. 确认Mailgun域名已完成验证

登录Mailgun控制台,检查你的域名是否完成DNS验证(包括MX、TXT记录配置),未验证的域名会被限制发送邮件,也可能导致认证失败。

5. 重启应用生效配置

修改环境变量后,必须重启Next.js应用,确保新配置加载。若使用Vercel等平台部署,需重新触发部署,避免环境变量缓存问题。

内容的提问来源于stack exchange,提问作者Ben Jonson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 19:00:14