我有超过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或任何其他方式来实现这一点。
答案 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分钟设置一次。