Шаблон SES / электронная почта не могут отображать японский текст - PullRequest
0 голосов
/ 14 сентября 2018

Я создал шаблон SES и отобразил его из aws-cli, поскольку вы можете видеть, что неанглийские тексты заменяются на «?», Как в текстовой версии, так и в версии HTML. Как это исправить? П.С .: Я также проверил это, отправив электронное письмо.

Ниже приведен мой файл TestMainTemplate.json

{
        "Template": {
            "TemplateName": "TestTemplate01",
            "SubjectPart": "こんにちは {{name}}!",
            "HtmlPart": "<h1>こんにちは {{name}}さん</h1><p>あなたの好きなAWSサービスは{{favoriteservice}}ですね。</p>",
            "TextPart": "前略 {{name}}さん\r\nあなたの好きなAWSサービスは{{favoriteservice}}ですね。\r\n草々"
        }
    }

comamnd для загрузки шаблона в aws SES из cli:

aws ses create-template --cli-input-json file://TestMainTemplate.json --region us-east-1

команда для рендеринга шаблона:

aws ses test-render-template --template-name TestTemplate01 --template-data '{ "name": "大栗" , "favoriteservice": "SES" }' --region us-east-1

выход:

Date: 2018-09-14T03:27:46.913Z
Message-ID: <5990...........ec2-user@ip-......ec2.internal>
Subject: ????? ??!
MIME-Version: 1.0
Content-Type: multipart/alternative;
    boundary="----=_Part_106793_202759574.1536895666913"
Content-Transfer-Encoding: quoted-printable

------=_Part_106793_202759574.1536895666913
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

?? ????
???????AWS?????SES????
??
------=_Part_106793_202759574.1536895666913
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<h1>????? ????</h1><p>???????AWS?????SES????</p>
------=_Part_106793_202759574.1536895666913--

Ответы [ 2 ]

0 голосов
/ 15 января 2019

У меня были проблемы с немецким языком. Я изменил кодировку для загруженного файла JSON с UTF-8 на ANSI все было хорошо.
Я уже мог видеть зашифрованные символы после загрузки шаблона и отправки команды get-template через AWS CLI. Смена кодировки на ANSI сделала всю работу за меня.

Ой, и мне не пришлось менять кодировку консоли для этого!

0 голосов
/ 16 сентября 2018

Я подозреваю, что ваш терминал не установлен в UTF-8.Что говорит echo $LANG?В моем случае это:

$ echo $LANG 
en_NZ.UTF-8

Я попробовал описанные выше шаги и получил верный отрендеренный код в кодировке base64:

$ aws --output text ses test-render-template --template-name TestTemplate01 --template-data '{ "name": "大栗" , "favoriteservice": "SES" }' --region us-east-1 
Date: 2018-09-15T23:36:13.701Z
Message-ID: <143...>
Subject: =?UTF-8?B?44GT44KT44Gr44Gh44GvIOWkp+aglyE=?=
MIME-Version: 1.0
Content-Type: multipart/alternative; 
    boundary="----=_Part_237228_701472298.1537054573701"
Content-Transfer-Encoding: quoted-printable

------=_Part_237228_701472298.1537054573701
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: base64

5YmN55WlIOWkp+agl+OBleOCkw0K44GC44Gq44Gf44Gu5aW944GN44GqQVdT44K144O844OT44K5
44GvU0VT44Gn44GZ44Gt44CCDQrojYnjgIU=
------=_Part_237228_701472298.1537054573701
[... etc ...]

И какой у вас aws-cli версия?

$ aws --version
aws-cli/1.14.14 Python/2.7.12 Linux/4.15.0-34-generic botocore/1.8.18

Очевидно, что мой довольно старый (текущий 1.16.14), и команда SES все еще работает как ожидалось.

Я совершенно уверен, что это проблема с кодировкой вашего терминала.Это должно быть установлено на UTF-8 , чтобы это работало.

...