将PHP邮件功能划分为不同的任务,使其更加高效,能够处理更多的收件人
假设我想向10000多个不同的收件人(电子邮件地址)发送10000多封电子邮件,这些邮件都是从SQL DB获取的,但显然,我在使用将PHP邮件功能划分为不同的任务,使其更加高效,能够处理更多的收件人,php,Php,假设我想向10000多个不同的收件人(电子邮件地址)发送10000多封电子邮件,这些邮件都是从SQL DB获取的,但显然,我在使用mail()时会遇到问题函数本身 所以我在想,如果我把任务(发送10000封电子邮件)分成100个不同的任务,每3秒通过AJAX处理一次 这就是我将大任务划分为许多小任务的想法: 首先,检查任务中有多少收件人(本例中为10000) 如果任务中有100多个收件人,则开始划分: 如果有200个或更少的收件人,将总数分为2 或者如果超过200个,分成3个,以此类推 因此,基
mail()时会遇到问题代码>函数本身
所以我在想,如果我把任务(发送10000封电子邮件)分成100个不同的任务,每3秒通过AJAX处理一次
这就是我将大任务划分为许多小任务的想法:
首先,检查任务中有多少收件人(本例中为10000)
如果任务中有100多个收件人,则开始划分:
如果有200个或更少的收件人,将总数分为2
或者如果超过200个,分成3个,以此类推
因此,基本上,确保总数被划分为不同的任务,每个任务不超过100个收件人
然后将每组收件人以及用户messege和subject以及所有其他标题和内容存储在每行的SQL db中
然后,AJAX请求每3秒运行一次,每次处理一个任务
因此,最终结果是:我将在SQL db中有许多不同的任务等待完成。每3秒完成一次
现在我需要知道这是否真的更有效,是否允许我使用mail();要处理更高的音量
还是我只是在浪费时间
干杯为什么不使用邮件队列?在数据库中创建一个队列,然后逐个处理。这也提供了创建优先级的能力。只需每隔一分钟左右运行一次cron作业,然后发送一批
当然,你不应该使用rawmail()
函数,而是应该使用一个邮件类,例如,它负责邮件头、简单附件、多个收件人等。我只会使用spool(队列)。我不知道这是否回答了你的问题,但我们在工作中实现了PHPList来处理这个问题。它是开源的,允许您控制电子邮件列表、限制和一系列其他设置。我们有一个30万用户的数据库,目前我们的电子邮件列表有12000个。我们所要做的就是创建电子邮件并单击“发送”,然后在一周内,它会成批发送电子邮件(你也可以控制这一点)。如果这是您将要对收件人多次执行的操作,我建议您查看一下。好的,然后,使用ajax调用队列脚本,如前所述:)