配置Mailgun SMTP对接Mastodon时出现SSL证书错误
解决Mastodon SMTP邮件发送的SSL证书验证错误
你遇到的这个「无法使用此配置发送邮件」错误,核心是SSL证书验证环节出了问题(从SSL_connect returned=1...state=error: certificat...的提示就能判断),结合你给出的Mailgun SMTP配置,咱们一步步来排查解决:
1. 先验证服务器能否识别Mailgun的SSL证书
先在你的Mastodon服务器上运行这条命令,检查Mailgun的SMTP证书链是否能被系统正常识别:
openssl s_client -connect smtp.mailgun.org:587 -starttls smtp
看输出里有没有Verify return code: 0 (ok)的字样——如果没有,说明你的服务器缺少对应的根证书。
- 针对Debian/Ubuntu系统,安装并更新根证书包:
sudo apt update && sudo apt install ca-certificates sudo update-ca-certificates - 针对RHEL/CentOS/Rocky Linux系统:
sudo yum install ca-certificates sudo update-ca-trust
2. 确认SMTP端口与加密方式匹配
Mailgun的SMTP常用两个端口,要和你的加密配置对应上:
- 587:使用STARTTLS加密(先建立普通连接再升级为SSL),需要确保Mastodon配置里
SMTP_ENABLE_STARTTLS设为true - 465:直接使用SSL/TLS加密,需要确保
SMTP_TLS设为true
你当前认证方式是plain,一定要检查配置文件(config/production.rb或者.env.production)里的SMTP_PORT设置是否和加密逻辑匹配。
3. 临时调整验证模式排查问题(仅测试用)
如果上面两步都没问题,你可以临时把SMTP_OPENSSL_VERIFY_MODE改成none,再尝试发送测试邮件——这能帮你确认是不是验证环节的问题。但注意这只是临时排查手段,长期使用会有安全风险,测试通过后一定要改回peer。
修改配置后,记得重启Mastodon相关服务让配置生效:
sudo systemctl restart mastodon-web mastodon-sidekiq
4. 检查Mailgun账户的基础配置
最后再确认下Mailgun那边的设置:
- 你的域名是否已经完成Mailgun的DNS验证
mastodon@notifications.example.com这个发件地址是否在Mailgun里被添加为授权发件人- 你的Mailgun账户有没有触发发送限制(比如新账户的初始额度用完了)
内容的提问来源于stack exchange,提问作者Ben Freeman
相关产品推荐
相关产品推荐

