通过亚马逊简单邮件服务发送大量邮件给用户


Send bulk mails to user via Amazon Simple Mail Service

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

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

在while循环中是否有任何延迟可用?所以我们可以将其限制在每秒2-3封邮件。由于脚本在cron作业中工作

Thanks in advance

这将需要少量代码,但不多,但如果将生成电子邮件的任务与实际发送电子邮件的任务分开,则可以使用amazon SQS和cron作业来执行邮件。

我所做的是我有一个名为'EmailQueue'的SQS队列,其中包含消息中的电子邮件的"TO","Subject"和正文。生成要发送的电子邮件的作业只是尽可能快地将所有这些消息放入队列中。

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

通过cron作业的计时来控制节流阀。在我的例子中,我的工作在退出之前每次运行最多只能处理5封电子邮件。

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

亚马逊是低成本发送批量电子邮件的最佳选择,但它并没有为他们的服务提供最好的gui。您可以使用外部服务,如bullmailer,从亚马逊的ses发送电子邮件。

它为您的活动提供列表管理,活动,电子邮件自动化等详细报告