ホームページ  >  記事  >  バックエンド開発  >  [PHP] メール送信時に mail() 関数が失敗する (sendmail コマンドと postfix)

[PHP] メール送信時に mail() 関数が失敗する (sendmail コマンドと postfix)

little bottle
little bottle転載
2019-04-17 14:29:382635ブラウズ

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=&#39;630892807@qq.com&#39;;
$subject = &#39;测试一下&#39;;
$message = &#39;我来测试&#39;;
$headers[] = &#39;From: shihan2@sopans.com&#39;;
mail($to, $subject, $message, implode("\r\n", $headers));

テスト成功


関連チュートリアル:

PHP プログラミングに関するビデオ チュートリアルの完全なセットエントリーからマスターまで

#

以上が[PHP] メール送信時に mail() 関数が失敗する (sendmail コマンドと postfix)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。