ホームページ  >  記事  >  バックエンド開発  >  PHPでメール機能が使えない原因の分析と解決策

PHPでメール機能が使えない原因の分析と解決策

伊谢尔伦
伊谢尔伦オリジナル
2017-06-27 10:53:192940ブラウズ

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を再起動します

sudo /etc/init.d/apache2 restart

このとき、元の
phpコードを再度実行すると

メールが正常に送信されます


以上がPHPでメール機能が使えない原因の分析と解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。