这是我的任务:
我有表格。
用户设置电子邮件的标题和内容。我有50,000封电子邮件的数据库。
现在我需要将此标题+内容发送到每封电子邮件。 我怎么能从服务器上做到这一点?用函数mail();太长了。我需要每1分钟发送10封电子邮件。怎么设置呢?当我关闭标签时,只要每封电子邮件获得标题+内容,它就应该发送电子邮件。
答案 0 :(得分:2)
获取mail()
在php中执行此操作,同时正确调用脚本以使其持续到操作结束,即使用户代理已关闭。
This回答介绍了如何操作:
这是竞争条件。 PHP会在某些时候检测到(通常是在 尝试做输出)Apache正在大吼大叫 远程用户已关闭连接。无论你想要的一切 要做的就是取决于代码的结构。
如果你想确保所有操作都在之前完成 脚本自行关闭,使用ignore_user_abort(TRUE),它保留了PHP 连接断开后运行。它仍然受制于 用户max_execution_time限制等等,但不会关闭 因为你断开了。
this答案向您展示了一种准确的方法:
当然可以用PHP完成,但你不应该这样做 后台任务 - 新进程必须与之分离 启动它的进程组。
由于人们不断给出这个常见问题解答的错误答案,我已经 在这里写了一个更全面的答案:
http://symcbean.blogspot.com/2010/02/php-and-long-running-processes.html