Swiftmailer电子邮件队列,具有调用该类的多个函数 - 以及gmail SMTP时间限制

时间:2012-08-06 00:11:34

标签: php smtp swiftmailer

我试图绕过这个:

我的代码库中有很多功能,可以发送一封带有SwiftMailer的电子邮件。假设在1秒钟内,1000个用户启动不同的功能,最终发送一封(或多封)电子邮件。该类如何捕获所有这1000个请求并将其排队,而无需任何数据库访问?如果它是启动1000个请求的单个函数,我理解整个数组如何通过类迭代 - 使用我定义的“批量发送”规则(例如,每次100个,休息2分钟)。但我了解如何从发起电子邮件的多个用户那里做到这一点。

那就是说,如果我使用Gmail Apps SMTP服务器发送我的所有电子邮件,会有什么好的限制?我将远远不及我在上面的示例中使用的每秒1000个请求,但将来在几分钟内可能会有100个。

谢谢大家。

1 个答案:

答案 0 :(得分:0)

如果您无法访问“数据库”;你的选择是:

  1. 回退到平面文件以管理队列(即基本上使用一系列平面文件作为您自己的数据库,按时间戳排序并按顺序发送;那些到达同一秒的任何顺序,可能是alphabitcal给出一个随机唯一名称?
  2. 使用memcached将电子邮件存储在内存中 - 警告:如果memcached服务器重新启动,将丢失所有信息。
  3. 一秒内1000个请求是少数几个;我的电子邮件通用规则绝不会超过2000小时。 GMail会在http://support.google.com/mail/bin/answer.py?hl=en&answer=22839以500个唯一的电子邮件地址宣传他们的限制(以防止垃圾邮件),因此这对您来说可能是一个问题。还有其他提供商允许更多,但您需要付费。