HTML-шаблон AWS SES состоит из нескольких строк - PullRequest
0 голосов
/ 07 мая 2018

Я использую 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 с несколькими строками.

1 Ответ

0 голосов
/ 07 мая 2018

Данные, которые вы отправляете, должны быть предварительно отформатированы, чтобы быть действительным файлом JSON. Чтобы убедиться, что он действителен, вам нужно избежать некоторых специальных символов:

  • Двойная кавычка"сбежал как \"
  • Обратная косая черта \ экранирована как \\
  • Newline

    сбежал как \ 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 answer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...