Laravel 8配置AWS SES SMTP出现连接超时问题求助
解决AWS SES SMTP连接超时问题
排查步骤:
检查服务器网络连通性
在服务器终端执行以下命令测试端口连通性:telnet email-smtp.us-east-2.amazonaws.com 587 # 或者用nc命令 nc -zv email-smtp.us-east-2.amazonaws.com 587如果返回无法连接,说明服务器的防火墙、安全组或云服务商的出站规则限制了587端口的访问,需要开放该端口的出站流量(也可以尝试465端口,AWS SES支持SSL加密的465端口)。
核对AWS SES SMTP配置
确认Laravel项目.env文件中的配置项:MAIL_HOST必须是对应区域的SMTP端点(us-east-2的正确端点是email-smtp.us-east-2.amazonaws.com)MAIL_USERNAME和MAIL_PASSWORD是AWS SES控制台生成的SMTP专用凭证(不是IAM账号的密码,需在SES控制台的"SMTP设置"中创建)MAIL_PORT设为587时,MAIL_ENCRYPTION需为tls;若用465端口,MAIL_ENCRYPTION设为ssl
验证AWS SES账号状态
- 若账号处于沙箱模式,只能发送邮件到已在SES中验证过的收件邮箱,无法发送到未验证的外部邮箱(比如gmail.com,除非该邮箱已被验证)
- 检查SES控制台的发送配额,确认未超出限制,账号未被暂停服务
Laravel配置缓存与独立测试
- 清除Laravel配置缓存,避免旧配置干扰:
php artisan config:clear - 使用独立SMTP客户端测试(比如swaks),排除Laravel框架问题:
swaks --to email@gmail.com --from your-verified-email@example.com --server email-smtp.us-east-2.amazonaws.com --port 587 --auth --user YOUR_SMTP_USERNAME --password YOUR_SMTP_PASSWORD --tls
- 清除Laravel配置缓存,避免旧配置干扰:
内容的提问来源于stack exchange,提问作者namdi
相关产品推荐
相关产品推荐

