0

在我解决这个解决方案之前,我想通过社区运行它以获得反馈。

问题:

  1. 我的方法可行吗?即甚至可以这样做吗?
  2. 它是正确/最有效的解决方案吗?
  3. 如果这不是正确的解决方案,那么更好的方法是什么?

问题:

  1. 需要通过应用程序发送大量电子邮件。
  2. 在被标记为垃圾邮件发送者之前,共享托管服务器仅允许每小时最多发送 500 封电子邮件
  3. 发送批量电子邮件时服务器超时

建议的解决方案:

提交任务后(即用户使用表单和前端模板提供所有必要的电子邮件信息,选择目标受众等),操作将:

  1. 确定电子邮件将发送到多少条记录(来自存储的联系人数据库)
  2. 如果上面 #1 中的记录数超过 400:
  3. 为数据库中的所有这些记录分配一个批号。
  4. 运行一个 CRON 作业:
  5. 每小时从批次“X”中选择 400 条记录,并发送保存的电子邮件模板,直到没有批次“X”的记录为止。每次发送一批 400 时,它的批号会被擦除(因此下一小时不会再次选择它)。
  6. 如果在它前面有一个未完成的 CRON JOB 调度(即当前正在运行),它将被放入一个队列中。

其他说明:要发送这些电子邮件,我只需使用以下代码遍历 SWIFT 邮件程序:

 foreach($list as $record)
 {
      mailers::sendMemberSpam($record, $emailParamsArray); 
      // where the above simply contains: sfContext::getInstance()->getMailer()->send($message); 
 }

*其中 $list 是批号为“X”的记录列表。

我不确定这是最有效的解决方案,因为它似乎使服务器陷入困境,并且如果列表或电子邮件很长,最终会超时。

所以,我现在只是在寻找意见......在此先感谢。

4

0 回答 0