There was a problem while sending a test email. Related debugging output is shown below:
Versions: WordPress: 4.9.1 WordPress MS: No PHP: 5.4.16 WP Mail SMTP: 1.2.2 Params: Mailer: mail Constants: No Server: PHP.mail(): Yes
Please
copy only the content of the error debug message above, identified with
an orange left border, into the support forum topic if you experience
any issues.
これについて調査したいと思います。
環境
CentOS 7 / Nginx / PHP / MariaDB / WordPress
メールフォームを作成してテストしてみる
HTML ファイルの作成
# vi /usr/share/nginx/html/form.html
PHP ファイルの作成
# vi /usr/share/nginx/html/send.php
実行したところ、error と表示されました。
nginx から php の mb_send_mail を通じてメールを送るのに失敗しているみたいです。
メールを送る php でテスト送信
次に php だけで動作するかテストします。
# vi ~/mail.php
メール送信を実施
# php mail.php
メールは無事送信できました。
php-fpm のログをチェック
php-fpm のログを見るのに必要な設定・コマンドは次の通りです。
設定ファイル:/etc/php-fpm.conf
→ログの設定を debug にします。
サービス再起動:systemctl restart php-fpm
ログファイル:/var/log/php-fpm/error.log
→デバッグで出たメッセージを確認します。
デバッグにして試しましたが、これと言って有用なメッセージは出てませんでした。
ファイアウォールを一時的に無効にしてみる
CentOS のファイアウォールは firewalld が行っています。
# systemctl stop firewalld
# systemctl start firewalld
ファイアウォール停止中にテストしてみたのですが、メール送信はやはりうまくいきませんでした。
WP Mail SMTP
WP Mail SMTP のテスト送信を再度試してみます。
今度は 25番ポートのローカルメールサーバへメールを送信する設定で試します。
There was a problem while sending a test email. Related debugging output is shown below:
Versions: WordPress: 4.9.1 WordPress MS: No PHP: 5.4.16 WP Mail SMTP: 1.2.2 Params: Mailer: smtp Constants: No ErrorInfo: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting Host: localhost Port: 25 SMTPSecure:string(0) ""
SMTPAutoTLS:bool(false)
SMTPAuth:bool(false)
Server: OpenSSL: Yes SMTP Debug: 2017-12-29 05:13:46 Connection: opening to localhost:25, timeout=300, options=array ( ) 2017-12-29 05:13:46 Connection: Failed to connect to server. Error number 2. "Error notice: stream_socket_client(): unable to connect to localhost:25 (Permission denied) 2017-12-29 05:13:46 SMTP ERROR: Failed to connect to server: Permission denied (13) 2017-12-29 05:13:46 SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
Please copy only the content
of the error debug message above, identified with an orange left border,
into the support forum topic if you experience any issues.
25番ポートのアクセスで Permission Denied というエラーとなっています。
ネットで調べたところ、SE Linux がヒットしました。
SE Linux の確認
# getenforce
→ Enforcing と返事が返ります。
# getsebool httpd_can_sendmail
→ httpd_can_sendmail --> off
どうやら CentOS 7 では SE Linux が悪さをしているようです。
# setsebool -P httpd_can_sendmail 1
→ 設定後のリブート等の操作は不要この設定をしたところ、無事メールが送信できました。
0 件のコメント:
コメントを投稿