Elastic Beanstalk环境下Amazon SES发信报554地址未验证错误
问题根因
这个问题是Elastic Beanstalk(以下简称EB)内置默认MTA(邮件传输代理,默认用Postfix)的自动发件人重写规则导致的,属于EB环境的经典踩坑点:
- EB启动的EC2实例默认会分配
*.<region>.elasticbeanstalk.com格式的默认主机名 - 实例预装的Postfix默认开启了地址重写逻辑:如果应用通过本地25端口发信走Postfix中转,Postfix会自动把信封层的MAIL FROM地址替换为
[当前进程运行用户]@[实例默认主机名]格式,也就是你报错里的noreply@myapp.us-west-2.elasticbeanstalk.com - 这个重写发生在邮件协议的信封层,你在应用代码里配置的信头发件人不会被改动,所以很难第一时间排查到,最后到SES校验身份的时候才会触发拒信,刚好对应你说的DATA命令结束阶段返回554报错的现象。
解决方法
按落地成本从低到高选即可:
方案1:应用直连SES SMTP端点,跳过本地Postfix
这是长期最稳定、最少额外配置的方案:
- 修改应用内的SMTP配置,不要用默认的
localhost:25,直接填US-WEST-2区域的SES SMTP端点email-smtp.us-west-2.amazonaws.com,端口用587 - 配置对应SES SMTP凭证,开启STARTTLS加密
- 调整EB实例关联的安全组,放开出站587端口到SES服务的访问权限,避免被网络拦截
- 配置生效后应用会直接和SES服务建立连接,你设置的
noreply@myapp.mydomain.com会直接作为信封发件人传给SES,不会经过本地Postfix的重写逻辑。
方案2:必须走本地Postfix中转时,固定重写规则为自定义发件人
如果业务架构要求必须用本地Postfix做邮件统一中转,不要手动登录实例改Postfix配置(实例替换、重建后配置会丢失),通过EB的.ebextensions配置文件固化规则即可:
- 在项目源码的
.ebextensions目录下新建配置文件postfix_sender_fix.config,内容如下:
files: "/etc/postfix/sender_canonical_rules": mode: "000644" owner: root group: root content: | /.+/ noreply@myapp.mydomain.com "/etc/postfix/main.cf.d/disable_default_sender_rewrite.cf": mode: "000644" owner: root group: root content: | sender_canonical_classes = envelope_sender, header_sender sender_canonical_maps = regexp:/etc/postfix/sender_canonical_rules commands: apply_postfix_config: command: "postmap /etc/postfix/sender_canonical_rules && systemctl restart postfix"
- 将该配置随应用版本部署到EB环境后,Postfix会把所有出站邮件的信封发件人、信头发件人统一固定为你已经完成SES验证的
noreply@myapp.mydomain.com,不会再自动拼接EB默认域名。
方案3:临时应急方案
如果需要紧急恢复发信,可以直接在US-WEST-2区域的SES控制台添加myapp.us-west-2.elasticbeanstalk.com为验证域,按提示添加对应的DNS解析记录完成身份验证,这样哪怕发件地址被Postfix重写,也能通过SES的身份校验。这个方案不推荐长期使用,EB环境重建、默认域名变更时会直接失效,后续维护成本很高。
生效验证方法
配置调整完成后,先在EB实例上做本地测试确认配置生效:
- 通过
eb ssh连接到EB环境内的任意一台实例 - 执行测试发信命令:
echo "test content" | mail -s "sender test" -r noreply@myapp.mydomain.com 你的测试收件邮箱
- 查看
/var/log/maillog日志,确认发送给SES的MAIL FROM地址是自定义的noreply@myapp.mydomain.com,没有出现elasticbeanstalk.com后缀,就说明配置已经正常生效。
内容的提问来源于stack exchange,提问作者Adam M
相关产品推荐
相关产品推荐

