我想在使用phpmail()函数向用户发送每封电子邮件之间添加约30至60秒的延迟。我从表中获取用户的电子邮件数据并使用while循环,数据库表中有大约1000个用户。我希望延迟重复此while循环的语句,以便每个电子邮件在该特定用户之后发送给下一个用户。我使用以下代码:
$sql = "select * from users where `user_email` = '$_REQUEST[q]' or `user_name`='$_REQUEST[q]' ";
$rs_results = mysql_query($sql) or die(mysql_error());
while ($rrows = mysql_fetch_array($rs_results)) {
$fullname = $rrows['full_name'];
$usermailid = $rrows['user_email'];
$username = $rrows['user_name'];
$message =
"Hello $fullname \n
Welcome to My Site \n
The rest of the message";
mail($usermailid, "Important Message - from Site Admin", $message,
"From: \"Mysite Admin\" <auto-reply@mysite.com>\r\n" .
"X-Mailer: PHP/" . phpversion());
}
以上代码一次性将所有电子邮件一起发送到表中的1000个用户。我希望在发送每封电子邮件之间有30到60秒的延迟
答案 0 :(得分:0)
看看:http://php.net/manual/en/function.sleep.php。 php sleep函数将脚本执行延迟x秒。
答案 1 :(得分:0)
你是否将睡眠功能放在循环中?
可能是这样,即使你是,mail()请求也只是在脚本完成运行之前被堆叠起来。但那是另一个问题:脚本运行的时间将是500到1000分钟 - 比服务器允许的最大值还要长。
但是,使用cron功能,您可以每分钟唤醒并发送一封电子邮件并终止。