延迟发送电子邮件与PHP

时间:2011-09-22 17:03:08

标签: php email delay sleep bulk

我正在使用FOR循环从数组发送电子邮件[250]。

for ($counter = 0; $counter <= 250; $counter ++){
// send email function[$counter]

}

我考虑过sleep()函数,但由于服务器有限制执行时间不是一个选项。 请帮帮我!

4 个答案:

答案 0 :(得分:1)

要延迟在循环中发送电子邮件,您可以创建自己的wait()函数,其中包含一个循环并在迭代之前调用它。如果你想等待的原因是为了避免ISP的问题,那么请阅读这个SO答案:

Sending mass email using PHP

答案 1 :(得分:0)

如果没有某种调度程序,您总是会达到执行限制。 您可能希望将电子邮件存储在数据库中,然后让cron执行它们。

或者你可以延长执行时间:

<?php
   //replace 600 without how many seconds you need
   ini_set('max_execution_time', 600);

   ... loop through emails

?>

为什么你还要延迟它们呢?

答案 2 :(得分:0)

显然(未经测试)睡眠功能控制远离php,因此最大执行时间不适用。

来自:http://www.hackingwithphp.com/4/11/0/pausing-script-execution

“请注意,默认的最大脚本执行时间是30秒,但是您可以使用sleep()和usleep()来使脚本继续运行的时间更长,因为技术上PHP在睡眠操作期间无法控制。”

答案 3 :(得分:-1)

使用cron - 几乎所有主机都允许你使用它(除了免费主机),如果你需要帮助,他们应该非常乐意帮助你进行设置(如果他们不帮助你,不要给他们你的钱)