OTRS使用AWS SES发送邮件失败:邮件入队却无法发送
解决OTRS通过AWS SES发送邮件时的队列阻塞问题
我来帮你拆解下这个问题——从错误日志来看,核心症结是OTRS无法连接到AWS SES的SMTP服务器 email-smtp.us-east-1.amazonaws.com。咱们一步步排查定位:
第一步:先确认服务器网络连通性
先在OTRS所在服务器上,测试能否正常访问SES的SMTP端口(常用587或465)。可以用这两个命令快速验证:# 测试587端口(STARTTLS) telnet email-smtp.us-east-1.amazonaws.com 587 # 或者用nc测试465端口(SSL/TLS) nc -zv email-smtp.us-east-1.amazonaws.com 465如果连接失败,大概率是服务器防火墙、VPC安全组封禁了这些出站端口,或者DNS解析异常。可以再跑个DNS解析测试确认:
nslookup email-smtp.us-east-1.amazonaws.com第二步:核对AWS SES的SMTP配置细节
确保OTRS里的SMTP参数完全匹配AWS SES要求:- 服务器地址:确认是
email-smtp.us-east-1.amazonaws.com(要和你的SES账号所属区域一致) - 端口:优先用587(STARTTLS)或465(SSL/TLS),不要用默认的25端口(很多服务器会封禁)
- 认证信息:必须用AWS SES控制台生成的专用SMTP凭证(不是你的AWS账号密码,在SES控制台的「SMTP设置」里创建)
- 加密方式:587对应STARTTLS,465对应SSL/TLS,两者要匹配
- 服务器地址:确认是
第三步:检查OTRS的邮件发送配置
登录OTRS后台,进入「Admin -> System Configuration -> MailModule」,确认以下关键配置:MailModule设置为Kernel::System::Mail::SMTPSMTPHost准确填写email-smtp.us-east-1.amazonaws.comSMTPPort设为587或465SMTPAuth开启(设为yes)SMTPUser和SMTPPass填入正确的SES SMTP凭证
也可以手动触发队列发送,看看会不会输出更详细的错误信息:
/opt/otrs/bin/otrs.Console.pl Maint::Email::MailQueue --send第四步:确认AWS SES的账号状态
- 检查你的SES账号是否处于沙箱模式:沙箱内只能发送到已验证的邮箱地址,且有严格的发送配额,批量发送很容易被阻塞。如果是沙箱状态,需要申请移出。
- 验证SMTP凭证对应的IAM用户是否拥有
ses:SendRawEmail权限,策略配置是否正确。 - 查看SES控制台的「发送配额」,确认有没有超出当日发送上限导致无法投递。
内容的提问来源于stack exchange,提问作者rashidcmb
相关产品推荐
相关产品推荐

