Supabase配置Mailgun自定义SMTP发信报错如何排查解决
Supabase对接Mailgun SMTP报错排查
25端口i/o timeout报错核心诱因
该报错是云服务网络层默认规则拦截导致,和配置正确性、Mailgun服务状态无关。
所有主流公有云平台(包括Supabase底层依托的GCP)都会默认封禁25端口的出站流量:25是传统无加密SMTP的默认端口,长期被恶意程序用于发送垃圾邮件,云厂商统一做该端口的出站拦截是通用反垃圾邮件管控策略。从日志看,Supabase服务发起的TCP连接请求在网络层就被丢弃,根本没有到达Mailgun的SMTP服务节点,自然会触发i/o超时。
现有配置的报错原因判断
- 25端口的超时报错完全不涉及SMTP凭据校验环节:TCP连接都未成功建立,不存在账号密码对错的问题。
- 切换到465端口返回的
535 Authentication failed报错,才是配置/凭据错误导致的,常见触发原因:- SMTP用户名填写错误:Mailgun的SMTP服务登录账号并非自定义的
s***@customdomain.io,而是Mailgun域名验证完成后自动生成的postmaster@你的域名格式账号,和Supabase配置里的「SMTP admin email」字段不是同一个值。 - SMTP密码填写错误:Mailgun的SMTP服务需要使用单独生成的服务密钥,并非Mailgun控制台的登录密码,需要到Mailgun后台的SMTP凭据管理页面复制对应账号的专属密码,注意不要带入多余空格、换行符。
- 加密模式不匹配:465端口要求必须使用隐式SSL/TLS加密连接,如果Supabase侧未开启对应加密选项,连接握手阶段异常也可能触发认证类报错。
- SMTP用户名填写错误:Mailgun的SMTP服务登录账号并非自定义的
推荐配置方案
优先选择587端口搭配STARTTLS加密模式对接:该端口几乎不会被云厂商封禁,是Mailgun官方推荐的生产环境使用端口。配置时将SMTP用户名替换为Mailgun后台生成的postmaster@customdomain.io,粘贴对应账号的SMTP服务密钥,开启STARTTLS加密即可正常发送邮件。
内容的提问来源于stack exchange,提问作者J. Jackson
相关产品推荐
相关产品推荐

