2012-01-09 4 views
0

PHPのメール機能がCentOS 5.7サーバーで機能しなくなりました。ファンクションコールを含むスクリプトは、このサーバ上で数日前まで動作していましたが、コンフィグレーションの変更はありませんでした。PHPのmail()関数がtrueまたはfalseを返さない - スクリプトがタイムアウトする

mail()関数を呼び出すたびに、PHPスクリプトはその行を停止/フリーズします。それはスクリプトタイムアウト制限に達します。

$msgheader = 'MIME-Version: 1.0' . "\r\n"; 
$msgheader .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$msgheader .= "From: Test Name <[email protected]>\r\n"; 

echo "About to send mail ->"; 
mail ("[email protected]", "Test Subject", "Test Body", $msg_header); 
echo "Script never reaches this line!"; 

私はこの質問の電子メールアドレスを変更しましたが、以前に正しく実行されたスクリプトとして問題ではないことがわかりました。

メールアドレスをさまざまな個人アカウント(たとえば@ yahoo.com)に変更しようとしましたが、それでも機能しないため、ユーザーが所在する組織のスパムフィルタリングによるものではないと思います。

電子メールを送信できない場合にただちにfalseを返すのではなく、スクリプトのタイムアウトまでメール機能が停止する原因は何ですか?どのような設定を見ることができますか?

ありがとうございます!

EDIT:

  • のphp.iniが持っているApacheのエラーログには、エラーはありません。

    SMTP = localhostを。 smtp_port = 25; オプションsendmail_path =は/ usr/sbinに/ sendmailの-t -i

+0

ログファイルにエラーが記録されていないかどうか確認してください。 –

+0

新しいサーバーメールサーバーがインストールされていますか? php.iniで設定されていますか? –

+0

Apacheエラーログにエラーはありません。私はphp.ini設定を含んでいます。私はファイアウォールのポート25を開いているが、まだそれを修正していない – Dan

答えて

0

この問題は、サーバーのDNS設定で問題に関連していました。それは、サーバがインターネットに接続している問題を抱えていたが明らかになった

yum update 

を:しようとした後

。これは、電子メールを送信するためにアウトバウンド接続を試行する長いタイムアウトを説明しています。

私は、アウトバウンド接続を確立するためにはCentOSの私の/etc/resolv.confファイルに

をローカルドメイン

検索を追加する必要がありました。この問題は、ServerFaultに投稿された方が、今問題がわかっているようになりました。

関連する問題