百見は、一聞にしかず

見てもわからない事は、とりあえず聞いてみよう。

wordpressのwp_mail()が送信できない時には

記事を投稿する間隔が1日、3日、一週間、、、と来ていたら、いつの間にか一か月が過ぎてしまいました。早いものですね。。。

ということでタイトルの内容に移りたいと思います。

f:id:lbblue:20170522175941p:plain

wordpressでwp_mailを使ってメールを送信しようとした時に、送れない!
何でか分からない!
そんな時はありませんか?
今日、まさにそんな状況でした。
apacheのログを見てみました。(※1)対象のページはステータスが302(※2)になっていました。
うーん?移動?、、、していませんが、、、私の勉強不足でそれ以上はログからは追えませんでした。
早速、グーグル先生に尋ねて、たどり着いたところが英語のページでした。
こちらです。
https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
もう諦めかけたその時です。centosで検索してみればどうかなと思いページ内検索をしてみると
一箇所だけ引っかかりました。
なにやらそこにはSELinuxnの設定を変えればいいのではという事が辛うじて読み取れました。
端末を起動し、以下のコマンドを実行しました。

SELinuxの確認
getsebool httpd_can_sendmail
getsebool httpd_can_network_connect

SELinuxの設定
sudo setsebool -P httpd_can_sendmail 1
sudo setsebool -P httpd_can_network_connect 1

f:id:lbblue:20170522175925p:plain


すると、いつものように何事も無かったかのようにメールが送信されました。
とりあえず、動くようになって良かったです。

※1 ちなみにcentosapacheでログを確認するときは、
/var/log/httpd/の中にある以下のファイルを確認します。
access_log
error_log

※2 wikiには「リクエストしたリソースが一時的に移動されているときに返される。」とありました。(一部抜粋)

 

CentOS7で作るネットワークサーバ構築ガイド (Network server construction gu)

CentOS7で作るネットワークサーバ構築ガイド (Network server construction gu)

 

 

いちばんやさしいWordPressの教本第3版 人気講師が教える本格Webサイトの作り方 (「いちばんやさしい教本」)

いちばんやさしいWordPressの教本第3版 人気講師が教える本格Webサイトの作り方 (「いちばんやさしい教本」)