私はPostfixを使用してメールをExchange2010に中継しています。これが私の設定です:
relayhost = [smtp.exchange.2010]
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/relay_passwd
smtp_sasl_security_options =
#smtp_sasl_mechanism_filter = ntlm
(/ etc/postfix/relay_passwdには、Exchangeの一部のアカウントのログイン情報が含まれています)この構成を使用すると、電子メールをExchangeに中継できます。問題は次のとおりです。Postfixから送信されたメッセージにヘッダーがあります。
X-MS-Exchange-Organization-AuthAs: Anonymous
メッセージはExchangeシステムでは認証されていないメッセージのように扱われます(つまり、配布グループに送信するときに送信者が認証される必要がある場合、エラーが発生しました:#550 5.7.1RESOLVER.RST.AuthRequired;認証が必要です## rfc822; [email protected]) 。 Postfixと同じアカウントでOutlookを使用していますが、問題なく送信できます。 2つのケースで私が気付いた違いは、OutlookがNTLM auth mechを使用して送信すること、PostfixがLOGINmechを使用することです。何か案が?
AlexRobinsonの答えによると、問題はPostfixにあります。これはPostfix2.9以降で(デフォルトで)修正されました: http://www.postfix.org/postconf.5.html#smtp_send_dummy_mail_auth
[Incompat 20111106] To work around broken remote SMTP servers, the Postfix SMTP client by default no longer appends the "AUTH=<>" option to the MAIL FROM command. Specify "smtp_send_dummy_mail_auth = yes" to restore the old behavior.
私も同じ問題を抱えてる。また、電子メールが個人ではなくグループに送信されると、問題が発生します。メッセージがAUTHされていない場合、Exchangeサーバーはグループに送信しません。しかし、postfixがログオンによって認証するように設定されている場合、なぜ電子メールはAUTHされないのですか?手がかり:telnetを使用してメールを送信する場合、電子メールはwill AUTHされます。電子メールに含まれるヘッダーはX-MS-Exchange-Organization-AuthAs: Internal
(私の場合)になります。そして、メールはグループに送られます!
これが私が見つけたものです(postfixピアログレベルを4に設定することによって):postfixはSMTPコマンドMail From: ...... AUTH=<>
を送信します。 AUTH=<>
を省略して、すべてが順調です。それを入れると、Exchangeは.... Anonymous
と言います。
私は今、接尾辞がなぜあるのかを調べています。
ああ。それを見つけた。接尾辞v2.8のsmtp_proto.c
の1358行目。ハードコードされています。さて。それは最も残念なことです。コードはセキュリティの観点からは非常に正しいですが、PostfixSMTPクライアントでこのSMTP送信コードに誰がアクセスするかを制御できる場合は正しくありません。
/* postfix: smtp_proto.c
#ifdef USE_SASL_AUTH
if (var_smtp_sasl_enable
&& (session->features & SMTP_FEATURE_AUTH))
vstring_strcat(next_command, " AUTH=<>");
#endif
現時点では、パッチsmtp_proto.c
を実行し、接尾辞を最初から作成する以外に何をすべきかわかりません。うん。