Node.js (LoopBack 3) - Сколько получателей я могу отправить по электронной почте AWS SES? - PullRequest
1 голос
/ 21 июня 2019

До сих пор я отправлял электронные письма нескольким получателям Sakura Japan SMTP-сервер в моем LoopBack приложении.

{
  "emailDs": {
    "name": "emailDs",
    "connector": "mail",
    "transports": [{
      "type": "smtp",
      "host": "myapp.sakura.ne.jp",
      "secure": false,
      "port": 587,
      "tls": {
        "rejectUnauthorized": false
      },
      "auth": {
        "user": "~ ~ ~.sakura.ne.jp",
        "pass": "~ ~ ~"
      }
    }]
  }
}

Это почти нормально работает, если количество получателей не намного меньше 100 . Но это не сработает, когда число превысит 100 - например, 150 .


Таким образом , я собираюсь мигрировать AWS SES, но мне интересно, будет ли какое-либо ограничение с количеством получателей только из-за следующей цитаты

Сообщение не может содержать более 50 получателей в полях To:, CC: и BCC:. Если вам нужно отправить сообщение электронной почты большей аудитории, вы можете разделить список получателей на группы по 50 или менее, а затем несколько раз вызвать метод sendEmail, чтобы отправить сообщение каждой группе.

Итак, пожалуйста, кто-нибудь скажет мне, есть ли ограничение по количеству получателей или нет, если вы уже сталкивались.

Заранее спасибо.

PS: Вот пример кода AWS SES:

// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
// Set the region 
AWS.config.update({region: 'REGION'});

// Create sendBulkTemplatedEmail params 
var params = {
  Destinations: [ /* required */
    {
      Destination: { /* required */
        CcAddresses: [
          'EMAIL_ADDRESS',
          /* more items */
        ],
        ToAddresses: [
          'EMAIL_ADDRESS',
          'EMAIL_ADDRESS'
          /* more items */
        ]
      },
      ReplacementTemplateData: '{ \"REPLACEMENT_TAG_NAME\":\"REPLACEMENT_VALUE\" }'
  },
  ],
  Source: 'EMAIL_ADDRESS', /* required */
  Template: 'TEMPLATE_NAME', /* required */
  DefaultTemplateData: '{ \"REPLACEMENT_TAG_NAME\":\"REPLACEMENT_VALUE\" }',
  ReplyToAddresses: [
    'EMAIL_ADDRESS'
  ]
};


// Create the promise and SES service object
var sendPromise = new AWS.SES({apiVersion: '2010-12-01'}).sendBulkTemplatedEmail(params).promise();

// Handle promise's fulfilled/rejected states
sendPromise.then(
  function(data) {
    console.log(data);
  }).catch(
    function(err) {
    console.log(err, err.stack);
  });

1 Ответ

1 голос
/ 22 июня 2019

Согласно документации AWS SES , я думал, что смогу отправлять массовые письма без каких-либо ограничений , используя sendBulkTemplatedEmail() функцию AWS JS SDK .

Создайте объект для передачи значений параметров, которые определяют отправляемое сообщение электронной почты, включая адреса отправителя и получателя, тему, текст сообщения в формате обычного текста и HTML, в метод sendBulkTemplatedEmail изклиентский класс AWS.SES.Чтобы вызвать метод sendBulkTemplatedEmail, создайте обещание для вызова объекта службы Amazon SES с передачей параметров.Затем обработайте ответ в обратном вызове обещания.


Тем не менее, следующие 2 ссылки объясняют мне различные обходные пути для жизненного цикла производства, поскольку существует даже техническое ограничение для 50 получателей .

AWS SES SendBulkTemplatedEmail, пример и что произойдет, если квота будет превышена?

Управление лимитами отправки Amazon SES

Итак, AWS SES рекомендует, чтобы яsendEmail() один раз для каждого получателя.

Ограничения на отправку основаны на получателях, а не на сообщениях.Например, электронное письмо с 10 получателями считается как 10 против вашей квоты.Однако мы не рекомендуем отправлять электронную почту нескольким получателям за один звонок в SendEmail, поскольку в случае сбоя вызова в Amazon SES (например, неправильно отформатированный запрос) вся электронная почта будет отклонена, и ни один из получателей не получитполучить адрес электронной почты.Мы рекомендуем вам вызывать SendEmail один раз для каждого получателя.


Короче говоря, ,

  • Нет теоретического ограничения числа получателей при отправке писем на несколько адресов.
  • Но есть техническое ограничение в 50 получателей, когда мы отправляем массовые письма, звоня по номеру sendBulkTemplatedEmail()
  • . Лучшее решение - отправить электронное письмо каждому получателю, вызвав функцию sendEmail () несколько раз.

Спасибо за внимание.

...