WordPressに問い合わせフォームを設置した時に苦戦したのでまとめておきます。
OSはCentOS7です。

Contact Form 7 インストール

問い合わせフォームを簡単に設置できるプラグイン Contact Form 7 をインストールしました。

設定をしてテストをしてみるとこんなエラーが発生↓

メッセージの送信に失敗しました。後でまたお試しください。

送信できない( ノД`)シクシク…

WP-Mail-SMTP インストール

PHPのメールパッケージをインストールしていないので、 mail()関数 が使えないのかなと思い、
mail() の代わりに wp_mail() を使ってメールを送信してくれるプラグイン WP-Mail-SMTP をインストールしました。

WP-Mail-SMTP の設定をして意気揚々とフォームからメール送信をしたところ、またしても同じエラー↓

メッセージの送信に失敗しました。後でまたお試しください。

送信できない┐(´-`)┌マイッタネ

SELinuxの設定

設定は間違っていないはずなので、セキュリティ系で制限されているのだと思い試しに SELinux を無効にしてみました。

# setenforce 0

SELinux を無効にした後でフォームからメール送信をしたところ、送信に成功しました。

ありがとうございます。メッセージは送信されました。

メール送信エラーの原因は SELinux だということが分かったので、SELinux のどのブールパラメータを変更すればよいか調べました。

変更すべきパラメータは httpd_can_sendmail でした。
先ほど無効にした SELinux を有効にして、ブールパラメータを変更

# setenforce 1 ←SELinux 有効
# getsebool httpd_can_sendmail ←httpd_can_sendmail のパラメーターを確認
httpd_can_sendmail –> off ←off だとApache経由でメール送信ができない
# setsebool -P httpd_can_sendmail=1 ←httpd_can_sendmail のパラメーターを on にする
# getsebool httpd_can_sendmail ←httpd_can_sendmail のパラメーターを確認
httpd_can_sendmail –> on ←on になっている事を確認


無事に、SELinuxが有効な場合でもメールが送信できるようになりました。