Как отправить вложение с помощью AWS SES в NodeJS? - PullRequest
0 голосов
/ 03 сентября 2018

Согласно данному документу в "https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#sendTemplatedEmail-property".. Он использовал API" sendTemplatedEmail", мы можем отправлять электронную почту с использованием шаблонов. Это было успешно. Но я не мог понять, как добавить вложения к этому.

В 4-м пункте API-интерфейса " sendTemplatedEmail " указано "Общий размер сообщения, включая вложения, должен быть менее 10 МБ". Как добавить вложение здесь в этом API sendTemplatedEmail?

Также есть API под названием " sendRawEmail ". Но это не соответствует моему требованию. Мне нужно использовать шаблоны, а также прикрепить документы. Кто-нибудь знает, что делать ??

1 Ответ

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

Посмотрите на пример SendRawEmail:

/* The following example sends an email with an attachment: */

 var params = {
     Destinations: [], 
     FromArn: "", 
     RawMessage: {
         Data: <Binary String>
     }, 
     ReturnPathArn: "", 
     Source: "", 
     SourceArn: ""
 };
 ses.sendRawEmail(params, function(err, data) {
     if (err) console.log(err, err.stack); // an error occurred
     else     console.log(data);           // successful response
     /*
     data = {
         MessageId: "EXAMPLEf3f73d99b-c63fb06f-d263-41f8-a0fb-d0dc67d56c07-000000"
     }
     */
 });

Ссылка: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html

Важно: вам необходимо понимать стандарты типа MIME, чтобы включить ваше приложение. Взгляните на эту статью .

MIME был определен в 1992 году Специальной инженерной группой по Интернету. (IETF). Отличительной характеристикой сообщения MIME является наличие заголовков MIME. Пока ваши получатели почты также иметь программное обеспечение для электронной почты, совместимое с MIME (и большинство программ для электронной почты) is), вы можете автоматически менять файлы, содержащие вложения.

РЕДАКТИРОВАТЬ: В этой статье объясняется, как включить привязанность в ваше тело.

MIME завершает иллюзию вложенных файлов, позволяя Тело сообщения должно быть разделено на отдельные части, каждая со своим заголовки. Тип содержимого multipart / mixed означает, что содержимое тело разделено на блоки, разделенные "-" + уникальная строка гарантированно не будет найдено где-либо еще в сообщении. Если вы говорите что ваша граничная строка "MyBoundaryString", то все вхождения этой строки будет рассматриваться как граница. Так что лучше не быть в сообщение, введенное пользователем, или оно не будет правильно декодировано.

Википедия также приводит пример:

MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=frontier

This is a message with multiple parts in MIME format.
--frontier
Content-Type: text/plain

This is the body of the message.
--frontier
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64

PGh0bWw+CiAgPGhlYWQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcyBpcyB0aGUg
Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==
--frontier--

Полагаю, вы знакомы с Base64 .

...