2010年4月23日

[PHP-users 35155] Re:php のmail関数がたまにfalseを返す

>Redhat Enterprise Linux 4ES
上記のサーバーにはSelenuxという機能が含まれておりません。
現在お使いというCentOS 5.4にはSelinuxという機能が含まれております。
環境をお疑いならまずこのあたりのサービスを無効にし、
これでも駄目ならiptablesを無効にしてみては如何でしょうか?


-- original message --

From: choice<info@xxxxx>
To: PHP-users ML<php-users@xxxxx>
Sent: Fri, 23 Apr 2010 16:59:00 +0900
Subject: [PHP-users 35154] Re:phpのmail関数がたまにfalseを返す

>中出です。
>
>レス、ありがとうございます。
>また、レスが遅くなりすみません。
>
>> ソースコードを提示してみてはどうでしょうか?
>
>今回テストしたソースは以下となります。
>hogehoge.jpサーバからfugofugo.jpあてに
>test-1@xxxxxからtest-9999@xxxxxまで
>9999通のメールを送信しています。
>
>なお、fugofugo.jpのほうではアクセス制限はかけて
>ませんし、test-xxx@xxxxxアドレスは利用できる
>ものとなります。
>
>※hogehoge.jp、fugofugo.jpはテストの際は正しいドメイン
> を設定しています。
>
><?php
>ini_set('error_reporting', -1);
>ini_set('display_errors', 0);
>ini_set('log_errors', 1);
>ini_set('error_log','/tmp/php_err.txt');
>ini_set('max_execution_time','0');
>ini_set('memory_limit', '128M');
>
>if(function_exists('date_default_timezone_set')){
> date_default_timezone_set('Asia/Tokyo');
>}
>
>$from='test@xxxxx';
>$sender='postmaster@xxxxx';
>$title='this is test mail';
>$body='this is test mail';
>
>writeLog('start');
>for($i=1;$i<10000;$i++){
> $to='test-'.$i.'@fugofugo.jp';
> if(!mail($to,$title,$body,'From: '.$from,'-f '.$from)){
> writeLog('NG: '.$to);
> }
>}
>writeLog('end');
>
>
>function writeLog($line){
> $filename='/tmp/php_log.txt';
> $line=date("Y/m/d H:i:s").' '.$line."\n";
> $fp=fopen($filename,'a');
> fwrite($fp,$line);
> fclose($fp);
> echo $line.'<br>';
>}
>?>
>
>実行した結果、/tmp/php_log.txtには以下の
>ようなログが記載されていました。
>
>2010/04/23 11:41:37 start
>2010/04/23 11:50:54 NG: test-5973@xxxxx
>2010/04/23 11:53:12 NG: test-7394@xxxxx
>2010/04/23 11:56:54 NG: test-9602@xxxxx
>2010/04/23 11:57:26 NG: test-9971@xxxxx
>2010/04/23 11:57:29 end
>
>sendmailのログ(/var/log/maillog)にはこれらの
>アドレスに関する記載はありませんでした。
>
>mail関数の後に
>
> if($i % 5 ==0) sleep(1);
>
>のようなスクリプトを入れ、5通ごとに1秒休ませた
>場合も、以下のように変わらずでした。
>
>2010/04/23 15:49:19 start
>2010/04/23 15:53:30 NG: test-882@xxxxx
>2010/04/23 16:00:46 NG: test-2410@xxxxx
>2010/04/23 16:20:34 NG: test-6547@xxxxx
>2010/04/23 16:37:02 end
>
>
>また、
>phpソースの問題なのかサーバの問題なのか知りたくて
>hogehoge.jpとは別のサーバに同じスクリプト(sleepなし)を
>設置してテストした結果、こちらは問題なしでした。
>なおサーバは
>Redhat Enterprise Linux 4ES
>Sendmail version 8.13.1, config V10/Berkeley
>PHP Version 4.3.9
>sendmail_path /usr/sbin/sendmail -t -i
>となります。
>
>
>上記の結果、PHPの問題ということでなく、このサーバの設定の
>問題が濃厚なのかなぁと思います。
>
>
>> たくさんの人が返信されていて、
>> 「送信できない原因」を追及する方向で話が進んでいるようです。
>
>はい、
>いただいたレスを参考に調査をしているのですが、
>力不足もあいまってなかなか進まずという状況です。
>
>> ・[PHP-users 35127] [PHP-users 35135] とかぶりますが、
>> falseになったときは、数秒sleepして、再送してみる。
>
>についてですが、とりあえず原因を知りたいとおもっています。
>どうやっても分からない場合は、再送でいこうかなぁと思いますが。
>
>では、失礼します。
>
>----
>
>_______________________________________________
>PHP-users mailing list PHP-users@xxxxx
> http://ml.php.gr.jp/mailman/listinfo/php-users
>PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
>

_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2010年4月23日 17:51
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/95299
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。