php mail() が動作しない

php mail() が動作しない

mail()機能が動作していないことが分かりました

私は Debian を使用していますが、友人に言われたので postfix をインストールしました (ただし、自分では設定していません)。

phpinfo() を実行すると次の結果が得られます:

sendmail_path   /usr/sbin/sendmail -t -i    /usr/sbin/sendmail -t -i

しかし、このディレクトリには何もないsendmail

mail() を動作させるために何をすべきか、何かアイデアはありますか?

ありがとう

答え1

Unix では、ほとんどのプログラムはメールの送信に MTA (メッセージ転送エージェント) に依存しています。プログラムがメッセージを送信する場合、プログラムが実行され/usr/sbin/sendmail、メッセージ全体が stdin に渡されます。

Sendmail MTA はこのように動作する最初の MTA であり (現在も動作しています)、他の MTA もプログラムを提供するという同じ規則に従っています/usr/sbin/sendmail

[この回答では、Sendmail はオリジナルの MTA であり、sendmail(小文字の) は/usr/sbin/sendmail(現在使用されているすべての MTA に付属している) です。]

PHPはmail()Unixの伝統に従い、実行ファイルにメッセージを渡すだけですsendmail。つまり、MTAが必要です。Postfixはすでにインストールされていますが、それは良いことです。しかし、するにはバイナリがあるのでsendmail、 にない場合は/usr/sbin/、他の場所にインストールする必要があります --/usr/local/sbin/ソースからコンパイルした場合などでしょうか?

Postfix を再インストールすると問題が解決する場合があります。問題が解決しない場合は、Postfix を最初にどのようにインストールしたかなどの詳細を質問に追加してください。

sendmail以外の場所にある場合は/usr/sbin/、PHPの設定を編集する必要がありますphp.ini。これは通常 にあり/etc/php5/、Debianには三つそれらの 1 つです。(cgi/は一般的な CGI/FCGI 用、apache2/は Apache PHP モジュール用、cli/は PHP がコマンド ラインから使用される場合用です。)

関連情報