Contact Form 7というプラグインを用いてお問い合わせ用のメールフォームを設置してみましたが,送信を試してみるとエラーメッセージが出て送信できていませんでした.

調べてみると,SELinuxがブロックしているみたいでしたので,解決方法をメモしておきます.

環境

  • CentOS 7.2 (VPS)
  • Apache 2.4.6
  • WordPress 4.9.2

手順

1. ログを確認

とりあえず,以下のコマンドでログを確認します.

# tail /var/log/maillog

以下のようなメッセージが残されていました.

fatal: open /etc/postfix/main.cf: Permission denied

エラーメッセージでググると,どうもSELinuxが邪魔しているようです...

2. メール送信のためのSELinuxの設定

以下のコマンドでSELinuxにメール送信を許可してもらいます.

# setsebool -P httpd_can_sendmail=1

おわりに

お問い合わせ用フォームがきちんと動作するようになりました.

追記2018/2/27

お問い合わせフォームが動かなくなっていました.

理由としては,メール送信用のSMTPサーバーは自前で用意せずにGoogleのSMTPサーバーを使っていたためで,GoogleのSMTPサーバーが,私のサーバーからの通信をセキュリティ上の理由で遮断していました.

自前のメールサーバーを立ち上げ,Googleを使わないようにしましたので,正常に動くようになっていると思います.