Alguns antecedentes
O postfix herdou alguns recursos do sendmail mais antigo, como milter e aliases. O arquivo /etc/aliases faz parte de aliases inheritance e implementado por alias_maps . Por outro lado, o postfix tem virtual_maps / virtual_alias_maps para o alias de e-mail do manipulador. Então, qual é a diferença entre eles?
Parâmetro alias_maps
-
Usado somente para entrega local (8)
-
De acordo com a classe de endereço no postfix , o e-mail será enviado por local (8) se o os nomes de domínio do destinatário estão listados no
mydestination -
A entrada de pesquisa era apenas partes locais do endereço de e-mail completo (por exemplo, myuser from myuser @ example .com). Ele descarta as partes do domínio do destinatário.
-
O resultado de pesquisa pode conter um ou mais dos seguintes itens:
- endereço de e-mail : o e-mail será encaminhado para endereço de e-mail
- / file / name : o email será anexado a / file / name
- | command : mail canalizado para o comando
- : include: / file / name : inclua alias de / file / name
Parâmetro virtual_alias_maps
-
Usado por entrega virtual (5)
-
Sempre chamado pela primeira vez antes de qualquer outra classe de endereço. Não importa se o domínio do destinatário foi listado em
mydestination,virtual_mailbox_domainsou outros locais. Ele substituirá o endereço / alias definido em outros locais. -
A entrada de pesquisa tem algum formato
-
usuário @ domínio : ele corresponderá usuário @ domínio literalmente
-
usuário : ele corresponderá a usuário @site quando o site for igual a
$myorigin, quando o site estiver listado em$mydestinationou quando estiver listado em$inet_interfacesou$proxy_interfaces. Esta funcionalidade se sobrepõe à funcionalidade do banco de dados de aliases locais (5). -
@domínio : corresponderá a qualquer email destinado a
domain, independentemente das partes locais
-
-
O resultado de pesquisa deve ser
- endereço de e-mail válido
- usuário sem domínio. O postfix anexará
$myoriginifappend_at_myorigindefinido sim
Why do we need /etc/aliases when having the email inside virtual aliases map seems to override it?
Como você pode ver acima, alias_maps (/ etc / aliases) tem alguns recursos adicionais (ao lado de encaminhamento), como piping to command. Contraste com virtual_alias_maps que apenas encaminha o email.
What is the purpose of having these 2 separate aliases mapping and when do we decide when to use what?
As desvantagens do alias_maps são que você pode diferenciar se o destinatário original tiver o formulário [email protected] ou [email protected] . Ambos serão mapeados para a entrada raiz em alias_maps . Em outras mãos, você pode definir um endereço de encaminhamento diferente com virtual_alias_maps .
Why did fail2ban (which is configured to email to root@localhost) first follow email address given in alias_maps (/etc/aliases/) and later decides to ignore that once virtual_alias_maps was added?
Antes de o virtual_alias_maps ser adicionado : root @ localhost foi aliasado por alias_maps porque localhost foi listado em mydestination .
Após a definição de virtual_alias_maps : A entrada root (em virtual_alias_maps) não tem partes de domínio e localhost foi listado em mydestination , portanto, corresponderá a root [email protected] .
Why doesn't all services read email aliases mentioned in /etc/aliases and they only work when the email aliases are added in virtual alias map?
O comando mail root enviará o email para o root. Como a falta de partes de domínio, a reescrita trivial do postfix acrescentará myorigin às partes do domínio. Então, o e-mail será enviado para root @ myorigin .
Antes de o virtual_alias_maps ser adicionado : Infelizmente, myorigin não está listado em mydestination , por isso, não haverá aliases por alias_maps .
Após a adição de virtual_alias_maps : A entrada root (em virtual_alias_maps) não tem partes de domínio e myorigin (obviamente) iguais a myorigin , portanto corresponderá a root [email protected] .