PHP では、メール 関数 mail() を使用できるようにするために、メール システムがインストールされ、実行されている必要があります。使用するメール システム プログラムは php.ini ファイルに設定されます。
次のコードを使用してメールを送信しますが、配信は常に失敗します。 [PHP] view plaincopyprint?<?php $to = "xxxxxxxx@qq.com"; $subject = "Test mail"; $message = "Hello! This is a simple email message."; mail($to,$subject,$message); ?>調査の結果、PHP ではメール関数 mail() を使用できるようにするために、メール システムがインストールされ実行されている必要があります。使用するメール システム プログラムは php.ini ファイルに設定されます。具体的な解決策は次のとおりです:
1. sendmail をインストールします
sudo apt-get install sendmail
sudo apt-get install sendmail-cf
sudo apt-get install mailutils
2. sendmail を設定します
/etc/mail/sendmail.mc を開きます。次の行を見つけます:
DAEMON_OPTIONS('Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
Change 127.0.0.1 to 0.0.0.0
次のコマンドを実行して、古い
設定ファイルを使用して、新しい設定ファイルを生成します: cd /etc/mail
mv sendmail.cf~
m4 sendmail.mc > sendmail.cf
3. これはテストメールです。 " | mail -s "test" xxxxxxxx@qq.com
注意:このメールは迷惑メールとして受信されます。また、163メールボックスをご利用の場合、直接フィルタリングされて受信できない場合があります。
4. php.ini ファイルを設定します
/etc/php5/apache2/php.ini を開き、次の行を見つけます:
; sendmail_path =
この行を次のように変更します。 「-t」パラメータは必須であることに注意してください。これがないと、元の php ファイルがブラウザから実行される場合、mail() 関数は実行されません。 phpコマンドラインを使用してサーバー側で直接問題ありません。
5. apacheを再起動します
このとき、元の
phpコードを再度実行すると
。
以上がPHPでメール機能が使えない原因の分析と解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。