O problema aqui não é com o Postfix, mas com o Dovecot. Como o Dovecot não sabe sobre o Postfix recipient_delimiter
, ele deve assumir que uma consulta de usuário para [email protected] realmente significa “Procurar usuário” doe-test «no domínio» example.com «”.
Esta solução para isso é felizmente trivial, simplesmente diz ao Dovecot o que você disse ao Postfix :
- Abrir
/etc/dovecot/conf.d/15-lda.conf
- Remova o comentário da linha que contém
#recipient_delimiter = +
e substitua o+
por qualquer (-
no seu caso) - Lucro!
Na entrega do endereço Postfix e / etc / aliases:
A razão pela qual [email protected]
funciona em sua configuração é porque a pesquisa de aliases é feita pelo próprio Postfix antes decidir se a mensagem será entregue (isto é: o LMTP não é relevante em tudo nesta fase).
Então o que acontece é isto:
- O Postfix recebe uma mensagem para
[email protected]
usando seu daemonsmtpd
e a coloca na fila de mensagens - O daemon postfix
qmgr
agenda a mensagem para processamento -
qmgr
resolve o destino da mensagem usando o comandotrivial-rewrite
- Aqui é onde a análise e as pesquisas de endereço são realizadas e, portanto, o delimitador do destinatário é usado pela primeira vez.
- Em particular, o Postfix irá realizar as seguintes pesquisas na tabela de aliases:
-
[email protected]
ejohn.doe-test
(endereço original) -
[email protected]
ejohn.doe
(endereço sem extensão adddress) - (Possivelmente alguns outros, dependendo do endereço e da configuração usada.)
-
- Se a pesquisa for bem-sucedida, ela retornará o novo endereço de destino e a mensagem será colocada na fila novamente.
- Eventualmente, a mensagem (de uma forma ou de outra) acabará sendo marcada como pronta para entrega (mesmo que seja apenas um tipo especial de entrega ...) e
qmgr
agendará o comando apropriado para realizar essa entrega (comolmtp
) - passando a mensagem com o endereço de entrega final (no nosso caso[email protected]
)- Se o
lmtp
do Postfix for usado para entrega, uma conexão com o daemon LMTP real (Dovecot) será estabelecida e a mensagem (com o endereço de entrega final) será transmitida usando o protocolo LMTP.
- Se o
- O daemon LMTP da Dovecot não saberá nada desse processo de reescrita e simplesmente tentará entregar a mensagem com base no endereço de entrega final (
[email protected]
) que receber.
Agora, se considerarmos o caso de [email protected]
, veremos que a pesquisa da tabela de aliases para esse endereço nunca será bem-sucedida e, portanto, o endereço de entrega nunca será reescrito. O Postfix irá acabar tentando entregar uma mensagem para [email protected]
usando o LMTP.
O Postfix não deve simplesmente descartar a extensão de endereço antes de tentar entregar usando o LMTP?
Talvez , mas não descartá-lo com um enorme benefício: a Dovecot poderá saber sobre a extensão do endereço. Isso pode não parecer muito útil, mas processar a extensão de endereço no lado do Dovecot permite que coisas legais como automaticamente colocam mensagens em Subpastas IMAP usando o Sieve .