[PHP-users 26921] Re: mb_send_mail()の処理

Kenichi Nakano star-light @ web4ad.com
2005年 9月 17日 (土) 23:40:01 JST


中野です。

私は実際に1.の方法で会員へメールを送信しております。
メールサーバによって速度が全く違いますのでPHPの処理には
問題はないがメールを受ける側(MTA)の問題と思います。

xmail(window環境) , postfix(Fedora Core) , qmail(Fedora Core)

3つのMTAを試しましたが全く速度が違いました。
(色々設定を変えて試してみました)

結果どのMTAとは言いませんが
現在8000人へのメールの配信(PHPの処理のみ(メールキューに入るまで))
は5〜6分です。キューから完全に配信し終えるまでは10分くらいでしょうか。
1時間くらい掛かるMTAもありました。(^^;
この時はタイムアウト値を
max_execution_time = 86400
って適当に時間を増やしていました。

全てのメール内容にニックネームやその他の差込をして配信をしています。

mb_send_mail() の処理の部分のみコメントアウトして
メールを送信しない場合とコメントアウトを外して実際に
送信する場合の時間を測定してみれば原因がphpなのかメール送信
なのかハッキリすると思います。

とりあえずメールサーバを変えてみてはどうでしょうか?

> mb_send_mail() の場合、あて先は複数指定できるとなっていますが、以下の2つのやり方では、どちらの方
> が良いのでしょうか?
> 
> 1.----------------------------------------------------
> while($rec = mysql_fetch_array($result)){
>    mb_send_mail($rec[0], $subject, $text, $header);
>     }
> -------------------------------------------------------
> 2.----------------------------------------------------
> while($rec = mysql_fetch_array($result)){
>     $to = $to.$rec[0].",";
>     }
> $to = rtrim($to, ",");
> mb_send_mail($to, $subject, $text, $header);
> -------------------------------------------------------


PHP-users メーリングリストの案内