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: (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 サイトの他の関連記事を参照してください。