ホームページ >バックエンド開発 >PHPチュートリアル >[PHP] メール送信時に mail() 関数が失敗する (sendmail コマンドと postfix)
1. PHP の mail() 関数は電子メールを送信できますが、テストが成功したことはありません。その理由を要約しましょう:
PHP のメール関数は sendmail コマンドに基づいており、これをインストールする必要があります。 postfix ソフトウェア
2. PHP 設定項目 sendmail_path を確認します。これは、メール関数によって呼び出される基礎となるコマンドです。php -i|grep sendmail
3インストール sendmail コマンド、apt-get install postfix を使用できるのは postfix ソフトウェアのみです。
ソフトウェアのインストールが完了したら、コマンド ラインで正常に送信できるかテストします。
eml テキストを作成します。ファイルの内容は、メインの電子メール プロトコル ヘッダー
Subject: title-testing From: shihan2@sopans.com To: 630892807@qq.com Sorry, I'm testing. ~_~
/usr/sbin/sendmail -t -i -f shihan2@sopans.com < 2.eml
-f パラメーターの後に from 値が続きます。対応関係が一致しない場合は、一致します。エラーが報告された場合は、ログ ファイル /var/log/mail.log をチェックして、エラーの原因と成功したかどうかを確認できます。
##From の値が一致しない場合、ログに表示される情報#送信成功後の対応する情報、250ok
#4. php 設定ファイルを変更し、php 関数を使用してレターを送信します この設定ファイル /etc/php/7.0/cli/php.ini を変更しました。テスト中に、これを電子メール アドレスから書き込まなかった場合、送信は失敗し続け、 501 Syntax: MAIL FROM: 208700f394e4cf40a7aa505373e0130b (in Reply to MAIL FROM command)) というプロンプトが表示され、 からのメールとからの文字が互いに対応していません 構成を確認してください
php ファイル
<?php $to='630892807@qq.com'; $subject = '测试一下'; $message = '我来测试'; $headers[] = 'From: shihan2@sopans.com'; mail($to, $subject, $message, implode("\r\n", $headers));テスト成功
PHP プログラミングに関するビデオ チュートリアルの完全なセットエントリーからマスターまで
#
以上が[PHP] メール送信時に mail() 関数が失敗する (sendmail コマンドと postfix)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。