批量发送电子邮件mysql表设置?

时间:2012-01-27 16:16:07

标签: php mysql database-design schema

我想出了一个我正在制作的简单批量电子邮件的架构。电子邮件将通过运行cron job'd php脚本每5分钟发送一定数量的电子邮件。问题是我不认为这是最好的方法,并且正在寻找一种替代的,更好的方式;或验证;)。

(简化)架构如下所示:

 EmailList  |  JobQue  |   Jobs
------------|----------|----------
   email    |   jobid  |    id
            |   email  | esubject
                       |  ebody

这个想法是,当创建新作业时,它会将其添加到Jobs表中,并且每个需要发送的电子邮件都将添加到JobQue表中。
然后实际发送电子邮件的cron'd php脚本将循环遍历JobQue表中的下一个X项目,发送和删除它们。

这是一个很好的方法吗?它会在适度负载下弯曲吗? (1000-5000封电子邮件,每天1-5个工作)?当然,如果有更多的电子邮件被添加然后发送,但是会有其他问题(比如尝试一次性向表中添加1000条记录,即使我用一个mysql查询插入它们)? / p>

谢谢,
最大

2 个答案:

答案 0 :(得分:0)

我认为这是一种非常有效的方法。唯一的问题可能是,如果你想一次发送成千上万的电子邮件。它可能导致PHP超时。 使用一个查询将记录添加到mysql中并不错,这是imo的最佳方式。 但我必须说,副本取决于查询本身。如果它太长(我的意思是太长的字符串),那么你可以松开与服务器的连接。 但我认为你根本不会对这个架构有任何问题。

答案 1 :(得分:0)

至少,您可能需要考虑短于5分钟的时间。如果您将X限制为30(避免列入大量黑名单的关键数字),那么您需要16小时55分钟才能完成5000封电子邮件。