我有一个users
表在我的数据库。有5万个以上的电子邮件地址。我想一次给所有人发邮件。我用的是while
环。但是我的浏览器在发送邮件的时候卡住了。如何向所有用户发送电子邮件?
$qryUserEmail = mysql_query("SELECT username,email FROM users WHERE is_active=1");
if(mysql_num_rows($qryUserEmail)){ //I got 50624 email addresses.
while($getUserEmail = mysql_fetch_array($qryUserEmail)){
//Sending Email code Here...
}
}
我不知道background-process
代码。如果有人知道,请在这里发布你的答案。如何发送电子邮件而不花任何时间为我的相关代码?
Php应该能够启动后台进程,但我不太了解这一点。
我建议你引入某种队列和后台工作者,它可以在没有用户直接交互的情况下发送电子邮件。
所以当用户点击'send'时,一个作业被添加到队列中,并且每隔一段时间,排队的作业被处理(如cron作业或类似的)
另一种选择是为诸如send grid或mailchimp之类的服务付费。
-
使用
set_time_limit()
和ini_set('max_execution_time')
来增加执行时间。 -
您可以从shell脚本(或类似crontab)或浏览器执行。php文件。
没有必要使用回调函数或其他东西。把你的电子邮件发送到你的邮箱,或者使用抄送和密件。