Salesforce集成AWS SES API:模板发送请求体报错排查求助
排查AWS SES模板邮件调用400错误的步骤
针对你在Salesforce Apex中调用AWS SES模板邮件接口返回400状态码且响应{"Message":null}的问题,可按以下步骤排查:
核对模板的存在性与名称匹配
AWS SES模板名称区分大小写,确认你调用的Welcome_Email模板在目标AWS区域下已创建且状态正常,名称完全一致(包括大小写、特殊字符)。验证TemplateData的合法性
当前你传入的TemplateData是转义后的字符串,需确保:- JSON格式完全合法,无语法错误(可通过在线JSON校验工具验证);
- 模板中使用的变量与
TemplateData中的键完全对应(比如模板里用{{unsubscribe}},你传的键必须是unsubscribe,大小写敏感)。
建议在Apex中用JSON.serialize()生成TemplateData,避免手动转义出错:
Map<String, Object> templateDataMap = new Map<String, Object>{'unsubscribe' => 'test'}; String validTemplateData = JSON.serialize(templateDataMap);检查API权限与端点
确认调用的IAM角色拥有ses:SendEmail权限(SES v2接口发送模板邮件用该权限),且调用的是对应区域的SES v2端点,不要混用v1的端点。查看AWS CloudTrail日志
由于返回的错误信息为空,直接去AWS控制台的CloudTrail服务中查找对应的API调用记录,里面的errorMessage字段会给出具体的错误原因(比如模板不存在、权限不足、JSON格式错误等),这是最有效的排查方式。确认请求头与格式
确保Apex请求的Content-Type头设置为application/json,如果头信息不正确,SES会无法解析请求体导致400错误。
内容的提问来源于stack exchange,提问作者Jake Colledge
相关产品推荐
相关产品推荐

