【发布时间】:2016-12-12 13:06:18
【问题描述】:
我有超过 10K 的电子邮件 ID 是我的数据库。我正在尝试使用 php mailer 向他们发送电子邮件。问题是我的托管服务提供商允许每分钟 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--
}
我想将 sleep 命令放在 for 循环中,但我在某处读到这是不好的做法。
我检查了这个问题PHP sleep delay
发现我们也可以使用 AJAX。
你可以使用 Ajax。并使用超时每隔几秒钟调用一次您的 PHP 脚本。这将避免缓慢的脚本加载。而且你也可以不断地这样做(当前的 for 循环只会运行 33 秒然后停止)。
有什么建议我可以如何实现 AJAX 或任何其他方式来实现这一点。
【问题讨论】:
-
而不是使用 sleep 命令,我建议使用每分钟运行一次的 cron 作业,您的脚本将在脚本中仅发送 60 封电子邮件,您可以在数据库中使用一个标志来了解已发送的邮件或不是(您可以取一个数据库字段 is_mail_sent。0 OR 1,0=未发送,1=已发送)。从脚本发送电子邮件时,您可以更新该标志。
-
按需发送电子邮件。我不必每周定期发送一次。
-
那么你也可以每周设置一次cron作业。
-
但是如果我每周设置一次 cron 作业,那么它将一次发送所有电子邮件。我需要限制每分钟 60 封电子邮件。我检查了我可以每周设置一次的 cron 作业,但我怎样才能将其限制为 60 封电子邮件。
-
您可以按照我在回答中提到的以下步骤进行操作
标签: ajax powershell