AWS SES模板html部分是多行

问题描述 投票:2回答:1

我正在使用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。

json amazon-web-services amazon-ses
1个回答
5
投票

您要发送的数据应预先格式化为有效的JSON文件。为了确保它是有效的,你需要逃避一些特殊的字符:

  • 双引号“逃脱为”
  • 反斜杠\转义为\\
  • 新队 转义为\ n
  • 回车逃脱\ r

您可以使用一些在线工具来验证您的JSON。其中之一是jsonlint.com

另请注意,HTML中的新行表示为<br />,而不是文件中的文字新行。

您的JSON文件应格式如下:

{
    "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}}<br />some text on the other line</body></html>"
    }
}

此外,您可以使用JSON Escape/ Unescape工具,并粘贴您的HtmlPart,以快速替换所有新行,并使其有效通过JSON发送。

逃脱HtmlPart

<!doctype html>\r\n            <html>\r\n            <head>\r\n            <meta charset=\"utf-8\">\r\n            <\/head>\r\n            <body>{{name}}<\/body>\r\n            <\/html>

您现在可以使用此字符串,引用它并将其用作HtmlPart。正如你所看到的那样,这个工具也可以逃避正斜杠,但不需要像this中所说的那样

© www.soinside.com 2019 - 2024. All rights reserved.