通过Amazon Simple Mail Service向用户发送批量邮件

时间:2013-04-19 06:41:19

标签: php amazon-web-services while-loop amazon amazon-ses

在我的一个网络应用程序中,我必须向我的用户发送电子邮件(所有邮件都是跨国的,用户接受隐私政策和条款和条件)。

目前,亚马逊让我每24小时发送10000封电子邮件,我们可以轻松增加配额。 我的问题是我们每秒只能通过亚马逊发送5封电子邮件。所以我对PHP脚本(循环)有点困惑来处理相同的问题。一个普通的PHP循环可以处理这个批量电子邮件?

while循环可用时有延迟吗?这样我们就可以每秒限制2-3封电子邮件。由于脚本在cron作业中工作

提前致谢

2 个答案:

答案 0 :(得分:3)

这将需要一些代码,但不多,但如果您将生成电子邮件的任务与实际发送电子邮件的任务分开,您可以使用amazon SQS和cron作业进行邮件发送。 / p>

我所做的是我有一个名为'EmailQueue'的SQS队列,其中包含消息中电子邮件的“TO”,“Subject”和正文。生成要发送的电子邮件的作业只需将所有这些消息放入队列中,就像它能够/想要的那样快。

然后我有一个计划任务,每隔一分钟运行一次,进入队列并下载一定数量的电子邮件,这取决于适当的节流。 cron作业根据存储在SQS消息中的信息构建和发送电子邮件消息,并在发送消息时删除消息 - 它不需要访问任何其他内容,因为发送电子邮件所需的所有内容都封装在SQS中消息。

您可以通过cron作业的时间来控制油门。在我的情况下,我的工作在每次运行之前最多只能处理5封电子邮件。

使用队列和cron作业还可以消除UI用户可能存在的任何延迟(假设有一个),因为将消息加载到队列中很快,并且SMTP电子邮件有时很慢,可能会导致最终用户明显滞后。

答案 1 :(得分:1)

亚马逊提供了以低成本发送大量电子邮件的最佳选择,但它并未为其服务提供最佳的GUI。您可以使用bullmailer之类的外部服务来从Amazon ses发送电子邮件。

它为列表管理,广告系列,电子邮件自动化提供了更多信息,并为您的广告系列提供了详细的报告