
CentOSで、Postfix 2.6.6を設定し、メールアカウントを用意。
CentOS上から、メールの送信を確認したところで、
Windows の Outlook2016 に メール送信設定をしようとしたところ問題が発生。
念の為、他のメーラーで設定できるかの確認として、
Thunderbird で、設定を行ったところ、問題はなかった。
Outlook2016 でのエラー内容
Outlookの設定画面で、メールの送信設定を進めていくと
「554 5.7.1」
というエラーが発生。
Postfixのログ内容
CentOS側で、Postfixのログを確認したろころ、
-------------------------------------------------------
Jun 8 19:27:12 localhost postfix/smtpd[24445]:
NOQUEUE: reject: RCPT from ルルのホスト名[ルルのIP]:
554 5.7.1
from=
to=
proto=ESMTP helo=
-------------------------------------------------------
「Helo command rejected: Access denied」
この内容が、エラーの詳細となっていた。
Helo コマンドとは?
Helo コマンドは、メールを送信する前に、ドメイン名を識別する役割をもっています。
通常、Heloコマンドで、ドメイン名が識別できない場合でも、
メールの送信には問題はないのですが、セキュリティ上の設定がある場合
Access denied(アクセスが拒否されました)となるのです。
Postfixの設定ファイルの確認
アクセス拒否がされているのであれば、原因は、設定ファイルにある可能性があるため
「main.cf」の「smtpd_helo_restrictions」を確認。
-------------------------------------------------------
smtpd_helo_restrictions =
permit_mynetworks,
reject_invalid_hostname,
check_helo_access regexp:/etc/postfix/helo_restrictions,
permit
-------------------------------------------------------
スパム対策として、主に用いられる設定として、
「check_helo_access regexp:/etc/postfix/helo_restrictions,」
記述していた内容が問題だと判明。
Postfixの設定ファイルの修正内容
「main.cf」の「smtpd_helo_restrictions」部分を
以下のように変更
-------------------------------------------------------
smtpd_helo_restrictions =
permit_mynetworks,
reject_invalid_hostname,
reject_unknown_sender_domain,
permit
-------------------------------------------------------
とはいえ、一般的な設定ってこれで良いのか?という疑問はあるものの、
設定ファイルを保存し、再起動したところ、エラーが出ずに、Outlookの設定も完了
まとめ
今回、未だに2.6.6 使ってるため、情報が古くあまり出てこなかったのですが、
解決までこぎつけたので一安心となりました。
参考になれば幸いです。
補足
「postfix 2.9.x」 や 「2.10.x」 の場合
554 5.7.1 になりやすいとのことで、
-------------------------------------------------------
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
-------------------------------------------------------
上記の設定を追加すると良いとのことでした。