質問: RedHatEnterpriseLinux 5.11 のサーバよりPostfixを使用してメールを送信しようとしています。 SMTPサーバはOffice365の「smtp.office365.com」です。 必要な設定を行った上でPostfixのsendmailコマンドを実行。 メールを送信しましたところ、下記エラーが/var/log/maillogに記録されておりメール送信に失敗します。 ■エラー内容(抜粋) postfix/smtp[XXXXX]: warning: SASL authentication failure: No worthy mechs found postfix/smtp[XXXXX]: XXXXXXXXXXX: SASLauthentication failed; cannot authenticate to server smtp.office365.com[XXX.XXX.XXX.XXX]: no mechanism available なお、SASLに必要となりますパッケージ 「cyrus-sasl」「cyrus-sasl-lib」「cyrus-sasl-plain」「cyrus-sasl-md5」 につきましては、インストール済みとなります。 ※ エラーメッセージを検索しましたところ、上記パッケージのインストール漏れが原因で 同事象が発生している旨の記事を見かけました。 しかし、今回は先述の通りインストール済みのため、別原因のようです。 本件の原因についてご存知の方がいらっしゃいましたら、ご教示の程よろしくお願いいたします。
回答: RHEL 5.11 の postfix のバージョンは 2.3.3 で合っていますでしょうか? リレー先 smtp.office365.com の認証方式について、25番ポートは認証なし、587番ポートは **LOGIN** と **XOAUTH2** をサポートしているようです。 RHEL 5.11 の postfix だと LOGIN を利用することになると思いますが、`smtp_sasl_mechanism_filter` で LOGIN を除外していたりしませんでしょうか。 main.cf または `postconf -n` コマンド出力を教えてください。 また、RHEL 5.11 の `cyrus-sasl-plain` は **i386**版と **x86_64**版があります。 **x86_64**版がインストールされていることを確認ください。 ``` $ rpm -q --queryformat="%{name}-%{version}-%{release}.%{arcn}\n" cyrus-sasl-plain cyrus-sasl-plain-2.1.22-7.el5_8.1.i386 cyrus-sasl-plain-2.1.22-7.el5_8.1.x86_64 ``` ### (2019/04/08 22:06) 追記 postconf -n の結果は質問文を修正して追記すると、多くの人に見てもらえると思います。 `smtp_sasl_security_options = noplaintext, noanonymous` (デフォルト) なので、`noplaintext` により LOGIN が許可されないのだと思います。 `smtp_sasl_security_options = noanonymous` または `smtp_sasl_security_options =` (空) に設定してみてください。