我正在使用AWS SES按照文档https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html发送电子邮件。示例模板中的HTML部分太短,但我需要一个包含多行的长HTML部分。例如,它有如下几行:
{
"Template": {
"TemplateName": "Group_Invitation",
"SubjectPart": "{{who}} has invited you to join team {{group_name}}",
"TextPart": "",
"HtmlPart": ["<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>{{name}}</body>
</html>"]
}
}
字符串
我无法上传此模板。它将显示错误
Error parsing parameter 'cli-input-json': Invalid JSON: Invalid control character at: line 6 column 32 (char 182)
JSON received: {
"Template": {
"TemplateName": "Group_Invitation",
"SubjectPart": "{{who}} has invited you to join team {{group_name}}",
"TextPart": "",
"HtmlPart": ["<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>{{name}}</body>
</html>"]
}
}
型
我不知道如何处理多行的htmlpart。
4条答案
按热度按时间iyzzxitl1#
您发送的数据应预先格式化为有效的JSON文件。为了确保它是有效的,你需要转义一些特殊的字符:
*双引号“转义为\”
*反斜杠\转义为\
*新行
转义为\n
*回车转义\r
您可以使用一些在线工具来验证JSON。其中一个是jsonlint.com
还要注意,HTML中的新行表示为
<br />
,而不是文件中的文字新行。你的JSON文件格式应该如下:
字符串
您也可以使用JSON Escape/ Unescape工具,粘贴您的HtmlPart,快速替换所有新行,使其通过JSON发送有效。
转义HtmlPart
型
你现在可以把这个字符串,引用它,并使用它作为HtmlPart。正如你所看到的,这个工具也可以转义正斜杠,但它不是必需的,正如this回答中所述
oxcyiej72#
如果您尝试使用create-email-template API使用AWS CLI v2完成此操作,则模板已更改,现在看起来不同。您可以通过以下方式获取模板 backbone :
字符串
p5cysglq3#
这对我来说是一个大的HTML文件。首先转到:Remove Line Breaks,选择选项
Remove line breaks and paragraph breaks
,然后将其输出粘贴到JSON转义工具中,然后在HtmlPart中使用它。zsohkypk4#
另一种解决方案是使用yaml文件上传模板内容。这是我正在使用的一个例子。
下面是update命令:第一个月
下面是yaml文件的内容。
字符串
Yaml允许HTML部分的多行输入。