增加了使用phpmail功能发送每封邮件的延迟,同时总共向1000个用户发送邮件


Adding delay in sending each mail using phpmail function, while sending mail to 1000 users in all

我想在使用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秒的延迟。

看看:http://php.net/manual/en/function.sleep.php.php睡眠函数将脚本执行延迟x秒。

您是否将睡眠函数放入循环中?

这可能是因为,即使您是,mail()请求也只是堆积在一起,直到脚本完成运行。但这是另一个问题:脚本运行所需的时间将是500到1000分钟,比服务器可能允许的最大时间还要长。

然而,使用cron函数,您可以让它每分钟醒来,发送一封电子邮件并终止。