AWS SES 计划发送电子邮件(节点 SDK)

Posted

技术标签:

【中文标题】AWS SES 计划发送电子邮件(节点 SDK)【英文标题】:AWS SES Schedule sending of email (Node SDK) 【发布时间】:2017-02-07 16:54:26 【问题描述】:

就这么简单,我在 Node 中使用 AWS SDK 制作了一个 Lambda 程序,负责根据接收到的数据发送电子邮件。

我想“延迟”该电子邮件,在收到的日期和时间发送,而不是在调用函数的特定时刻发送。交付日期和时间是函数接收的参数。有什么想法吗?我在网上找不到太多搜索。

提前致谢!

【问题讨论】:

如果不需要提前超过3天安排,可以使用another mail delivery service, like SparkPost or Sendgrid. Mandrill可能支持更长期的安排,但他们没有具体说明任何地方。 【参考方案1】:

您应该开发一个发送电子邮件的队列,因为AWS SES does not offer that feature 并且如果您想尽快发送大量电子邮件,您会遇到发送限制的问题。因此,队列在任何电子邮件发件人服务中都至关重要。

对于队列,您可以使用 AWS SQS,对于处理硬退回和软退回,您可以使用 AWS SNS 和 AWS lambda 函数来管理所有这些。

【讨论】:

【参考方案2】:

SES 本身不提供此功能。我所做的是创建一个队列来处理电子邮件并在我的限制范围内安排它们。

这是伪代码:

queue = []
limitPerSecond = <Your API limit>
putEmailsInQueue(queue)

while (true) 
  processQueue(queue)
  wait 1s


function processQueue(queue) 
  numberOfEmailsToPop = limitPerSecond
  emailsToSend = popEmailsFromQueue(queue, numberOfEmailsToPop)
  sendEmails(emailsToSend)

您也可以查看huhumails.com

免责声明:我是该服务的作者,我这样做是为了让人们更轻松地少担心这个问题。

HuhuMails 充当您与 Amazon SES 之间的中间人,负责安排电子邮件并确保您的电子邮件在您的速率限制内发送。如果您想在将来发送电子邮件,它还接受日期和时区参数。

我目前也将它用于我的其他网站。希望你和其他人觉得它有用。如果您有任何问题,请告诉我。

【讨论】:

以上是关于AWS SES 计划发送电子邮件(节点 SDK)的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 python SDK 在 ECS fargate 作业上发送邮件,并在另一个 aws 帐户中使用经过验证的 SES 的凭据

AWS SES PHP SDK 请求需要来自经过验证的域?

在 AWS Lambda 函数中通过 AWS SES 发送电子邮件

Amazon SES 中的特殊字符

使用户能够通过 AWS SES 发送和接收电子邮件

电子邮件已验证,但我仍然无法使用 Amazon SES 发送电子邮件