OpenBSDサーバーにOpenSMTPD/Dovecotをインストールしています。最近、Dovecot LMTPが、単一のアポストロフィを含むアドレスからローカルユーザーに送信されたメッセージを拒否するという問題に遭遇しました(例:firstname.o'[email protected]
)。どうやらアポストロフィ、および他の多くの特殊文字は、電子メールアドレスのローカル部分で有効な文字です(これが@
文字の左側にあるすべてです)。
ログに表示されるメッセージは次のとおりです。
Jun 14 11:57:34 atlantic smtpd[42606]: 21749fd12ac76b57 mda delivery evpid=56aed6237d6444a0 from=<firstname.o'[email protected]> to=<[email protected]> rcpt=<[email protected]> user=me delay=0s result=PermFail stat=Error ("mail.lmtp: LMTP server error: 501 5.5.4 Invalid FROM: Invalid character in localpart")
ここで、example.com
は外部ドメイン、example.org
はローカルドメインです。
メッセージの一部:LMTP server error: 501 5.5.4 Invalid FROM: Invalid character in localpart
はdovecot-lmtp
によって返されます。
私の質問は、Dovecot LMTPがそのような電子メールを拒否するのを防ぐために、電子メールアドレスに有効な文字をリストするauth_username_chars
のような構成オプションを知っている人はいますか?または多分あなたはそれがそのようなアドレスからの電子メールを受け入れるようにする別の方法を知っていますか?
私の鳩小屋のバージョンは次のとおりです。
$ dovecot --version
2.3.5.1 (7ec6d0ade)
そしてそれが何か違いを生む場合に備えて、私は005_libsslにパッチを当てたOpenBSD6.5を実行しています。
ありがとう!
LDAshouldが仕様に一致するリモートアドレスを必要とするかどうかについての議論を無視すると、dovecotパーサーはRFC5322とあなたが何に非常に近いと信じています見ているのはアポストロフィでアドレスを拒否するdovecot LMTPではありません。
自分でLMTPセッションを開始することにより、dovecotがアドレスを受け入れていることを確認できます。
$ nc -U /var/dovecot/lmtp
220 example.com Dovecot ready.
LHLO example.com
250-example.com
MAIL FROM:<firstname.o'[email protected]>
250 2.1.0 OK
RCPT TO:<[email protected]>
250 2.1.5 OK
DATA
empty
.
354 OK
250 2.0.0 <[email protected]> FOOBAR Saved
LMTPで手動で確認したときにdovecotがメールを受け入れるが、MTAからの受信時に失敗した場合は、メールサーバーの構成を精査する必要があります。
メールサーバーは、dovecotに渡す前に、なんらかの方法でアドレスを編集していますか? LMTPセッションのトランスクリプトを取得し(dovecotでlmtp_rawlog_dir
を試してください)、アドレスがSMTPとLMTPの間で書き換えられるかどうかを比較します。 Ithinkmail.lmtp
を使用する場合、dovecot-lmtpとは対照的にdovecot-ldaに適用される同様の制限が適用されます。有効なコマンドライン引数も同様です。