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

Amazon SES sendTemplatedEmail无送达问题排查求助

排查Amazon SES sendTemplatedEmail的RenderingFailure问题

看起来你已经把基础配置都搞定了,但遇到了模板渲染失败的坑——返回了消息ID却没收到邮件,CloudWatch只给了个RenderingFailure的提示,确实挺头疼的。我给你梳理几个针对性的排查步骤:

  • 深挖CloudWatch的详细错误日志
    有时候默认的日志可能没输出完整的渲染错误细节,你可以试试用CloudWatch Insights来精准查询:

    fields @timestamp, @message | filter @message like /RenderingFailure/ | sort @timestamp desc
    

    另外要确认你已经在SES控制台开启了完整的发送事件日志:进入SES控制台 → 左侧“配置” → “事件发布”,检查是否勾选了“发送”、“渲染失败”等事件,并关联到正确的CloudWatch日志组。如果之前没开全,开启后再测试一次,应该能拿到更具体的错误信息(比如模板语法错误、变量缺失之类的)。

  • 手动验证模板渲染逻辑
    RenderingFailure本质是模板和传入的数据无法正确生成邮件内容,你可以直接在SES控制台测试模板:

    1. 进入SES控制台 → 左侧“电子邮件模板”
    2. 找到你的模板,点击“测试模板”
    3. 填入和你调用sendTemplatedEmail时完全一致的TemplateData JSON内容
    4. 点击“预览”,看看能不能正常生成邮件内容
      如果这里预览失败,直接就能看到模板的问题——比如Handlebars语法错误(比如未闭合的{{/if}}、错误的循环语法)、变量名拼写不匹配(SES模板变量是大小写敏感的!)。
  • 检查TemplateData的JSON格式正确性
    很多时候渲染失败是因为TemplateData不是有效的JSON:比如引号不匹配、末尾多了逗号、变量值没转义(比如包含双引号的字符串没加反斜杠)。你可以把你的TemplateData复制到本地JSON校验工具里确认格式完全正确。

  • 确认沙箱环境的收件人限制
    虽然你说已经验证了邮箱,但沙箱环境下只能发送到已验证的收件邮箱和发件人自身邮箱。不过如果是渲染失败的话,邮件根本没进入发送流程,所以统计里没记录,但还是要确认你测试的收件人都是已验证的,避免混淆问题。另外,就算渲染成功,沙箱里的邮件也可能被邮箱服务商扔进垃圾邮件,记得检查垃圾邮件文件夹。

  • 检查IAM权限与模板访问权限
    虽然你拿到了消息ID,但还是要确认调用sendTemplatedEmail的IAM角色/用户是否有ses:SendTemplatedEmail权限,并且能访问你指定的模板。可以检查IAM策略里是否包含了对应的资源(比如arn:aws:ses:区域:账号ID:template/你的模板名)。

  • 查看SES控制台的失败记录
    进入SES控制台 → 左侧“已发送邮件”,看看有没有对应的发送记录。如果有,点击进去查看“失败原因”,这里往往会给出比CloudWatch更直接的渲染错误描述。

按照这些步骤排查,应该能定位到具体的问题——大概率是模板语法或者TemplateData的格式问题,毕竟RenderingFailure几乎都是模板渲染环节出了错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:43:59