【问题标题】:Node.js(LoopBack 3) - How many recipients can I send emails to by AWS SES?Node.js(LoopBack 3) - 我可以通过 AWS SES 向多少个收件人发送电子邮件?
【发布时间】:2019-11-04 12:33:06
【问题描述】:

到目前为止,我一直在我的LoopBack 应用程序中通过 Sakura Japan SMTP 服务器向多个收件人发送电子邮件。

{
  "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,但我想知道是否会因为following quotation而对收件人数量有任何限制

邮件的收件人:、抄送:和密件抄送:字段中的收件人不能超过 50 个。如果您需要向更多的受众发送电子邮件,您可以将您的收件人列表分成 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);
  });

【问题讨论】:

  • 你的问题是什么,在单个 SMTP 对话或单个 Sendmail/Sendrawemail API 调用中不能有超过 50 个收件人。如果您添加超过 50 个收件人,SES 将拒绝该电子邮件。根据 AWS 设置的每秒电子邮件限制,您可以选择收件人并进行多次 api 调用。
  • @James Dean - 感谢您的关注。 If you add more then 50 recipients, SES will reject the email - 你能用一些证据来证明你的说法吗?
  • 尝试在单个 api 或单个 sendBulkTemplatedEmail() api 调用中添加超过 50 个收件人地址,您将收到拒绝错误。您的问题和下面给出的答案在任何地方都不匹配。
  • @James Dean - 感谢您的理解支持。我现在确信你的建议是相当合理的。我会尽快更新我的答案。

标签: node.js email amazon-ses loopback


【解决方案1】:

根据AWS SESdocumentation,我认为使用AWS JS SDKsendBulkTemplatedEmail()功能可以发送群发邮件,没有任何限制 .

创建一个对象以将定义要发送的电子邮件的参数值(包括发件人和收件人地址、主题、纯文本和 HTML 格式的电子邮件正文)传递给 AWS.SES 客户端类的 sendBulkTemplatedEmail 方法。要调用 sendBulkTemplatedEmail 方法,请创建一个用于调用 Amazon SES 服务对象的承诺,并传递参数。然后在 promise 回调中处理响应。


但是,以下 2 个链接向我解释了生产生命周期的不同解决方法,因为存在50 个收件人的平均技术限制

AWS SES SendBulkTemplatedEmail, example and what happens if quota is exceeded?

Managing Your Amazon SES Sending Limits

所以,AWS SES 建议我为每个收件人拨打一次sendEmail()

发送限制基于收件人而不是邮件。例如,一封有 10 个收件人的电子邮件在您的配额中计为 10 个。但是,我们不建议您在一次调用 SendEmail 时向多个收件人发送电子邮件,因为如果对 Amazon SES 的调用失败(例如,请求格式不正确),整封电子邮件将被拒绝,并且没有一个收件人会获取预期的电子邮件。我们建议您为每个收件人调用一次 SendEmail。


长话短说

  • 当我们向多个地址发送邮件时,理论上没有收件人数量限制。
  • 但是当我们通过拨打sendBulkTemplatedEmail()发送批量邮件时,有50个收件人的技术限制
  • 最好的解决方案是通过多次调用“sendEmail()”向每个收件人发送一封电子邮件。

感谢关注。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-05
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 2011-08-07
    • 2016-11-17
    • 2012-05-18
    相关资源
    最近更新 更多