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

naoki @ fr.catv.ne.jp naoki @ fr.catv.ne.jp
2010年 4月 23日 (金) 17:51:27 JST


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


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

>中出です。
>
>レス、ありがとうございます。
>また、レスが遅くなりすみません。
>
>> ソースコードを提示してみてはどうでしょうか?
>
>今回テストしたソースは以下となります。
>hogehoge.jpサーバからfugofugo.jpあてに
>test-1 @ fugofugo.jpからtest-9999 @ fugofugo.jpまで
>9999通のメールを送信しています。
>
>なお、fugofugo.jpのほうではアクセス制限はかけて
>ませんし、test-xxx @ fugofugo.jpアドレスは利用できる
>ものとなります。
>
>※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 @ hogehoge.jp';
>$sender='postmaster @ hogehoge.jp';
>$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 @ fugofugo.jp
>2010/04/23 11:53:12 NG: test-7394 @ fugofugo.jp
>2010/04/23 11:56:54 NG: test-9602 @ fugofugo.jp
>2010/04/23 11:57:26 NG: test-9971 @ fugofugo.jp
>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 @ fugofugo.jp
>2010/04/23 16:00:46 NG: test-2410 @ fugofugo.jp
>2010/04/23 16:20:34 NG: test-6547 @ fugofugo.jp
>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 @ php.gr.jp
>http://ml.php.gr.jp/mailman/listinfo/php-users
>PHP初心者のためのページ - 質問する前にはこちらをお読みください
>http://oldwww.php.gr.jp/php/novice.php3
>



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