如何使用后台处理php脚本发送电子邮件到大量的注册电子邮件


How to send email to huge numbers of registered email by using background-process php script?

我有一个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之类的服务付费。

  1. 使用set_time_limit()ini_set('max_execution_time')来增加执行时间。

  2. 您可以从shell脚本(或类似crontab)或浏览器执行。php文件。

    没有必要使用回调函数或其他东西。把你的电子邮件发送到你的邮箱,或者使用抄送和密件。