PostfixとDovecotを含むDebianサーバーがあります。最近では、DovecotにSieveをインストールし、電子メール配信にLMTPを使用するようにPostfixを設定しました。その時点から、通常のユーザー名は区切り文字と一緒には使用できません。区切り文字は、aliases-db が関連している場合にのみ解決されるようです。ログは次のように言います。
User doesn't exist: [email protected] (in reply to RCPT TO command)
以下はデフォルト設定といくつかの例です。
username: doe
delimiter: -
[email protected] -> works
[email protected] -> works
[email protected] -> unknown user
[email protected] -> works
/etc/aliases
:
john.doe: doe
/etc/postfix/main.cf
:
recipient_delimiter = -
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mailbox_transport = lmtp:unix:private/dovecot-lmtp
# All options: propagate_unmatched_extensions = canonical, virtual, alias, forward, include
propagate_unmatched_extensions =
ベストアンサー1
ここでの問題はPostfixではなくDovecotにあります。 DovecotはPostfixについて知らないので、recipient_delimiter
ユーザーのクエリは次のように仮定する必要があります。[Eメール保護]実際に意味するのは、""example.com"ドメインで"doe-test"ユーザーを探します"です。
幸い、解決策は簡単です。Postfixに言ったことをDovecotに伝える:
- 開いている
/etc/dovecot/conf.d/15-lda.conf
- 含まれている行のコメントを外して他のものに
#recipient_delimiter = +
置き換えます(あなたの場合)。+
-
- 利益!
Postfixアドレスの転送と/ etc / aliases関連:
これが設定で機能する理由[email protected]
は、エイリアス検索がPostfix自体で実行されるためです。今後メッセージを転送するかどうかを決定します(たとえば、LMTPはこのステップではまったく関係ありません)。
だから何が起こるのか:
[email protected]
Postfixはデーモンを使用してメッセージを受信し、smtpd
メッセージキューに入れます。- postfix
qmgr
デーモンはメッセージ処理をスケジュールします。 qmgr
解析メッセージターゲットの使用trivial-rewrite
注文する- ここではアドレスの解析と検索が行われるため、受信者の区切り文字が初めて使用されます。
- 具体的には、Postfixはエイリアステーブルで次のクエリを実行します。
[email protected]
そしてjohn.doe-test
(元の住所)[email protected]
john.doe
(アドレス拡張子のない住所)- (使用されている住所と構成によって異なることがあります。)
- 検索が成功すると、新しい宛先アドレスが返され、メッセージはキューに戻されます。
- 最終的に、メッセージは(何らかの方法で)配達の準備ができているとマークされ(返されたとしても、これは特別な配送タイプにすぎません...)、
qmgr
適切なコマンドがその配送を実行するようにスケジュールされます(例:lmtp
) - メッセージと最終配送先住所を転送します(この場合[email protected]
)。- 転送にPostfixを使用すると、
lmtp
実際のLMTPデーモン(Dovecot)に接続が確立され、LMTPプロトコルを使用してメッセージ(最終転送アドレスを含む)が転送されます。
- 転送にPostfixを使用すると、
- DovecotのLMTPデーモンは、完全な書き換えプロセスについて何も知らず、
[email protected]
受信した最終配信アドレス()に基づいてのみメッセージを配信しようとします。
この状況を考慮すると、[email protected]
そのアドレスのエイリアステーブル検索は決して成功しないため、転送アドレスが書き換えられないことがわかります。したがって、Postfixは最終的に[email protected]
LMTPを使用してメッセージを転送しようとします。
Postfixは、LMTPを使用して転送しようとする前にアドレス拡張子を削除する必要はありませんか?
おそらく、しかしいいえそれを捨てると膨大な利点が得られます。 Dovecotは次のことができます。知るアドレス拡張について これはあまり役に立たないかもしれませんが、Dovecot側でアドレス拡張を処理すると、次のようないくつかの素晴らしい機能が可能になります。Sieveを使用して電子メールをIMAPサブフォルダに自動的に配置する。