使用PHP发送批量电子邮件

时间:2010-05-30 09:05:10

标签: php email execution bulk

当新用户加入时,我必须向网站中的所有用户发送邮件。 我的问题是脚本在发送大约400封邮件后停止执行。 我已经将set_time_limit设置为0.并且在发送10封邮件后我也在睡觉(2)。

这个问题背后可能是什么原因。这个问题的解决方案。有没有更好的方法来发送批量电子邮件?

先谢谢

玫瑰

6 个答案:

答案 0 :(得分:2)

我们这样做是在cron的帮助下完成的。

我们(在我们公司)将用户列表分成50个地址的块。这些块放在数据库的表中(包含将此块链接到电子邮件数据的数据(标题,正文,...)。

通过每隔5分钟左右触发的cron.php文件,系统会抓取数据库中需要发送的第一个可用块并发送出电子邮件。

答案 1 :(得分:0)

我遇到了类似的问题,这取决于内存的使用情况,你如何发送它们,你能提供任何代码吗?

答案 2 :(得分:0)

如果PHP在safe mode中运行,则set_time_limit将无效。如果必须以安全模式运行PHP,则可以使用配置指令max_execution_time修改默认时间限制。

答案 3 :(得分:0)

我不知道为什么你的脚本会停止。但您还要求更好的方式来发送批量电子邮件。我发现使用电子邮件包可以提供比内置PHP邮件命令更多的控制权。 Swift Mailer是一个非常好的。

答案 4 :(得分:0)

尝试设置任务队列。当您的Web应用程序想要发送电子邮件时,它会将其添加到任务数据库中,并且每个守护程序都会处理一个。这意味着,您可以将电子邮件设置为发送给网站的每个成员,并且您的守护程序将每2-4秒发送一封电子邮件。请参阅Kohana task queue module(PHP),Delayed_job(Ruby)和Celery(Python)以获得灵感。

答案 5 :(得分:0)

我发布了一个新答案,因为这个答案与我之前的答案无关。

我想知道:你究竟在哪里将set_time_limit设置为0?我的意思是,它是在php.ini,.htaccess,还是来自带有ini_set()的php文件。

是否有可能覆盖此值?