You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS sendCustomVerificationEmail无法发送邮件问题求助

问题排查与解决方案

核心现象

调用AWS SES的sendCustomVerificationEmail接口返回200状态码和有效MessageId,但目标邮箱始终收不到验证邮件,此前功能正常,约1个月前突然失效,更换多个邮箱地址均无效。


逐步排查方向

1. 验证自定义邮件模板状态与内容

  • 登录AWS控制台,进入SES服务的验证邮件模板页面,确认目标模板处于已启用状态。
  • 检查模板内容必须包含{VerifyLink}占位符,缺失该占位符会导致邮件无法生成有效验证链接,进而被SES拦截或无法正常投递。

2. 核查SES账户状态与发送限制

  • 查看SES控制台的发送统计面板,确认退信率(需<5%)、投诉率(需<0.1%)未触发AWS的发送限制阈值,一旦超出,SES会静默限制邮件投递。
  • 确认账户是否仍处于沙箱模式:沙箱模式下仅能向已在SES验证过的邮箱地址发送邮件,需先验证目标邮箱地址,或申请移出沙箱。

3. 通过MessageId查询邮件投递详情

  • 使用返回的MessageId在SES控制台的邮件查询功能中搜索,查看邮件的具体流转状态:
    • 若显示「已投递」:大概率被收件方邮箱服务商拦截,需检查邮件内容是否包含垃圾邮件特征(如敏感关键词、异常链接)。
    • 若显示「被拒收/丢弃」:需排查收件方域名的SPF/DKIM配置,或SES账户是否被列入ISP黑名单。

4. 验证自定义链接的合规性

  • 确认模板中{VerifyLink}生成的链接域名已在SES完成DKIM、SPF验证,未验证的域名会导致邮件被收件方判定为伪造邮件。
  • 手动访问生成的验证链接,确认链接可正常跳转且无安全提示(如浏览器标记为恶意网站)。

5. 检查区域与资源一致性

  • 代码中调用的是us-east-1区域的SES端点,需确认自定义验证模板、已验证域名等资源均创建在同一区域,跨区域调用可能导致隐性问题。

6. 补充代码错误捕获

当前代码未处理异常,建议添加捕获逻辑以排查潜在隐性错误:

try {
    $data = $ses->sendCustomVerificationEmail([
        'EmailAddress' => $verifyEmail,
        'TemplateName' => 'TemplateName'
    ]);
    print_r($data);
} catch (Aws\Ses\Exception\SesException $e) {
    echo "SES错误信息: " . $e->getMessage();
}

内容的提问来源于stack exchange,提问作者Alexey Ignatyev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 07:43:15