0
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 を超えるレコードがある場合にタイムアウトを引き起こします。

4

2 に答える 2

0

大量のメールを送信する場合は、ループに sleep() を入れます。一部の MTA はフラッディング リクエストを防ぐように設定されているため、メッセージの配信が停止され、ペナルティが課される場合もあります。メッセージがメールで返信されることはありませんが、メール サーバーは 4xx タイプのエラーを生成します。あなたの実装が何であるかはわかりませんが、キューから離れてメールを送信する場合、mail() 関数はおそらくメール システムに直接送信されます。

于 2013-10-24T08:22:03.547 に答える
0

を使用して、メーリングスクリプトのタイムアウトを増やす必要があります

set_time_limit(seconds)

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

于 2013-10-24T06:32:09.197 に答える