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

如何通过AWS CLI将独立HTML文件内容导入SES邮件模板?

解决AWS SES模板引用外部HTML/文本文件的问题

AWS CLI的--cli-input-json参数不会自动解析JSON文件内部的file://路径引用,所以你直接写路径会被当成字符串存入模板。以下是几种可行的解决方案:

方法1:用jq动态生成包含文件内容的JSON

jq是轻量的JSON处理工具,能读取外部文件内容并注入到JSON结构中,是最可靠的方案。

步骤:

  1. 先创建基础的template.json(保留除HtmlPart/TextPart外的其他字段):
{
  "Template": {
    "TemplateName": "你的模板名称",
    "SubjectPart": "邮件主题内容",
    "HtmlPart": "",
    "TextPart": ""
  }
}
  1. 执行以下命令,用jq替换空字段为文件内容,再传给AWS CLI:
aws ses create-template --cli-input-json "$(jq --arg html "$(cat template.html)" --arg text "$(cat template.txt)" '.Template.HtmlPart = $html | .Template.TextPart = $text' template.json)"

方法2:用sed替换JSON中的占位符

如果没有jq,可以用sed替换JSON里的占位符为文件内容。

步骤:

  1. 修改template.json,用占位符标记需要替换的位置:
{
  "Template": {
    "TemplateName": "你的模板名称",
    "SubjectPart": "邮件主题内容",
    "HtmlPart": "{{HTML_CONTENT}}",
    "TextPart": "{{TEXT_CONTENT}}"
  }
}
  1. 执行sed替换命令,将占位符替换为文件内容后直接传给AWS CLI:
sed -e "/{{HTML_CONTENT}}/{r template.html" -e "d}" -e "/{{TEXT_CONTENT}}/{r template.txt" -e "d}" template.json | aws ses create-template --cli-input-json -

方法3:直接在命令行拼接内容(需注意转义)

如果不想依赖外部工具,可以直接在--template参数里拼接文件内容,但要注意处理HTML中的单引号等特殊字符:

aws ses create-template \
  --template '{
    "TemplateName": "你的模板名称",
    "SubjectPart": "邮件主题内容",
    "HtmlPart": "'"$(cat template.html)"'",
    "TextPart": "'"$(cat template.txt)"'"
  }'

关键说明

AWS CLI的file://语法仅在直接作为命令行参数值时生效(比如aws ses send-email --html file://template.html),但JSON文件内部的字符串会被当作普通文本处理,不会自动解析路径读取内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:42:13