交错电子邮件发送

时间:2011-05-27 15:32:36

标签: php mysql email timeout

从编程上讲,在避免PHP超时的情况下,间接发送批量电子邮件的简单直接方法是什么?这是为了联系属于网站的几千名成员。

P.S:根据拆分条款的思考发送到N个电子邮件地址,并以某种方式调用自己的脚本。

3 个答案:

答案 0 :(得分:2)

最简单的方法就是在发送每x封电子邮件后暂停几秒钟:

$count = 0
while (foo) {
    send_email();
    if ($count++ == 100) {
        sleep(10);//sleep for 10 seconds
        $count = 0;
    }
}

答案 1 :(得分:1)

您可以随时尝试sleep命令或手动交错的cronjobs,但更好的选择可能是查找已建立的库来处理您的详细信息:PEAR Mail_Queue

  

Mail_Queue类将邮件放入   临时容器,等待喂食   到MTA(邮件传输代理),和   稍后发送它们(例如某个   邮件数量每隔几分钟)   crontab或以其他方式。

还有很多公司会以合理的价格为您处理所有这些事情,如果这是您的选择。

答案 2 :(得分:1)

如果您要发送给订阅该网站的所有人,您可以执行以下操作:

  1. 添加一列(如果尚未添加) 在用户表上存在某种东西 比如'email_sent',默认为1 (是的)
  2. 执行电子邮件发送时 触发,更新所有用户记录 将'email_sent'标志设置为0 (禁止)。
  3. 设置执行a的cron作业 PHP脚本(甚至点击你的网站 服务器使用指定的页面来 然后执行脚本 选择前N个用户 'email_sent'设置为0,发送给他们 电子邮件,并更新'email_sent' 每个成功的列为1。
  4. 如果您正在处理多个邮件,则需要加入另一个维护用户的表:mailout关系和“email_sent”状态。