PHP-Ajax:延迟批量电子邮件发送

时间:2016-08-06 04:57:39

标签: ajax powershell

我有超过10K的电子邮件ID是我的数据库。我试图用 php邮件程序向他们发送电子邮件。问题是我的托管服务提供商每分钟允许60封电子邮件。

所以,我想我需要更改我的电子邮件代码,以限制每分钟60封电子邮件。

这是我到目前为止编写的代码。

$result = $mysqli->prepare("SELECT uid,email FROM users where address IS NULL and city IS NULL");
            $result->execute();
            $result->store_result();
            $result->bind_result($uid,$email);
            while ($result->fetch()){
                   $email = $email;
                   --Code to send email--

                }

我想把睡眠命令放入for循环但我在某处读到这是不好的做法。

我查看了这个问题PHP sleep delay

并发现我们可以使用AJAX。

您可以使用Ajax。并使用超时来每隔几秒调用一次PHP脚本。这将避免加载缓慢的脚本。而且你也可以继续这样做(当前for循环只运行33秒然后停止)。

有什么建议我如何实现AJAX或任何其他方式来实现这一点。

1 个答案:

答案 0 :(得分:1)

您可以按照以下步骤

  

第1步:您可以创建一个名为“设置”的表:它将具有一个   列名为“last_email_sent_id”

     

第2步:您需要在60 s修复和sql查询中设置限制   primary_id>设置表中的“last_email_sent_id”列。

     

第3步:每当你更新“last_email_sent_id”时   将运行cron作业。如下所示

     

第4步:如果您发送前60封电子邮件,则会更新   “last_email_sent_id”改为“60”。然后cron将再次运行   “第2步”“last_email_sent_id”列将更新为值120   (用于存储电子邮件ID的表的主id的最后一个值)   在cron完成之后。如果表的主id将是最后一条记录,则“last_email_sent_id”将更新为“0”值。

     

步骤5: cron将在一周的最后一天每1分钟设置一次。