WEBからメール送信(SMTP)する際に「permission denied」が出たときの対処
2018年3月27日Linux Tips, Security Tips, Wordpress, wordpressセキュリティ, wordpressテクニカル, テクニカル, トピックス, ノウハウ
ホームページからメールを送信する仕組みを作る場合、専用サーバで構築するとよくありがちなissueは、「permission denied」が出ること。つまりsmtp送信非許可ということなのですが、通常このようなエラーはsmtpプロトコルでは発生しません。これがでたらセキュリティの何かに引っかかる問題があるということが推測できたら正解です。ずばりインストール直後のLinuxはSELINUXが有効になっているはずで、望ましいのはこれを有効にしたまま許可を出す設定をする事です。SELINUXではWEBサーバからメールを送信する処理に制限がデフォルト値OFFで入っています。
例えばWORDPRESSやフレームワークで送信用プラグインを導入しコンタクトフォームを作ろうと思った時に直接のローカルサーバのSMTPではなく外部のメール送信サーバを使うような場合はこの問題に遭遇するかもしれません。
エラーの例
1 |
Can't connect to ssl://smtp.gmail.com:465 |
ターミナルからrootで下記を実行しOFF設定になっていたらONになるようフラグを立ててください。
1 2 3 |
# getsebool httpd_can_sendmail <----WEBからメールが送れるか確認 httpd_can_sendmail --> off # setsebool -P httpd_can_sendmail 1 <----設定がOFFなら WEBからメールを送れるように設定。 |
以上で再度試行して頂ければ動作するはずです。めでたしめでたし!
タグ: permission denied, WEB, メール