邮件功能导致超时!在群发邮件期间。

时间:2013-10-24 06:25:05

标签: php sendmail

public function send_mail($event = '', $to=array(), $from=array(), $cc=array(), $bcc=array(), $reply_to = array(), $attachment=array(), $subject='', $body='', $is_html=true, $save_db=false, $immediate= true)
        {
            if(count($to)>0)
            {
                foreach($to as $key=>$value)
                {
                    if(!isset($value['name']))  
                        $value['name'] ='';

                    $this->AddAddress($value['address'], $value['name']);
                }
                $this->SetFrom($from['address'], $from['name']);    
                    }   
            else
                return false;   
        }

当有超过1000条记录时,此功能会导致超时!

2 个答案:

答案 0 :(得分:0)

您应该使用

增加mailingscript的超时时间
set_time_limit(seconds)

http://php.net/manual/en/function.set-time-limit.php

答案 1 :(得分:0)

如果您要发送群发电子邮件,请在您的循环中输入sleep()。一些MTA配置为防止洪水请求,因此将停止您的邮件传递,甚至可能会处罚。您不会收到邮寄给您的邮件,但电子邮件服务器将生成4xx类型错误。我不确定您的实现是什么,但如果您通过邮件处理队列,您的mail()函数可能直接发送到邮件系统。