在我解决这个解决方案之前,我想通过社区运行它以获得反馈。
问题:
- 我的方法可行吗?即甚至可以这样做吗?
- 它是正确/最有效的解决方案吗?
- 如果这不是正确的解决方案,那么更好的方法是什么?
问题:
- 需要通过应用程序发送大量电子邮件。
- 在被标记为垃圾邮件发送者之前,共享托管服务器仅允许每小时最多发送 500 封电子邮件
- 发送批量电子邮件时服务器超时
建议的解决方案:
提交任务后(即用户使用表单和前端模板提供所有必要的电子邮件信息,选择目标受众等),操作将:
- 确定电子邮件将发送到多少条记录(来自存储的联系人数据库)
- 如果上面 #1 中的记录数超过 400:
- 为数据库中的所有这些记录分配一个批号。
- 运行一个 CRON 作业:
- 每小时从批次“X”中选择 400 条记录,并发送保存的电子邮件模板,直到没有批次“X”的记录为止。每次发送一批 400 时,它的批号会被擦除(因此下一小时不会再次选择它)。
- 如果在它前面有一个未完成的 CRON JOB 调度(即当前正在运行),它将被放入一个队列中。
其他说明:要发送这些电子邮件,我只需使用以下代码遍历 SWIFT 邮件程序:
foreach($list as $record)
{
mailers::sendMemberSpam($record, $emailParamsArray);
// where the above simply contains: sfContext::getInstance()->getMailer()->send($message);
}
*其中 $list 是批号为“X”的记录列表。
我不确定这是最有效的解决方案,因为它似乎使服务器陷入困境,并且如果列表或电子邮件很长,最终会超时。
所以,我现在只是在寻找意见......在此先感谢。