A explicação está na documentação: link
Você quer "caixas de correio de alias", também conhecidas como virtual_mailbox_alias e virtual_mailbox_maps, mas fale sobre "alias domains": link
Eu entendi "Alias domains" como se fosse simplesmente um alias para outro domínio! Portanto, quando eu configurar uma caixa de correio como "[email protected]" e adicionar "alias.com" como um alias de domínio para "main.com", o endereço "[email protected]" também funcionará ... Mas não !
Então, eu adicionei esses domínios:
Eu criei esta caixa de correio:
Depois, mapeei esses domínios de alias:
E quando eu enviar um e-mail para [email protected], recebo este erro:
Recipient address rejected: User unknown in virtual mailbox table (state 13).
Não quero criar um alias para todos os domínios, pois tenho alguns. Eu também não quero usar um curinga (como info @ *) porque também há outros domínios que não são aliases de main.com
Então ... o que são exatamente?
Adicionar alias.com
a virtual_alias_domains
é o primeiro passo correto, mas isso apenas diz ao Postfix que você deseja usar esse domínio para os aliases. Não diz quais devem ser os aliases. Para isso, você precisa usar um mapa de alias virtual.
Primeiro, adicione algo assim a main.cf
:
virtual_alias_domains = alias.com
virtual_alias_maps = hash:/etc/postfix/virtual
A adição de virtual_alias_maps
fornece um arquivo ( /etc/postfix/virtual
) que é usado como um mapa de alias virtual. Mas o que você coloca nesse arquivo? De acordo com a página virtual (5) :
The input format for the postmap(1) command is as follows:
pattern address, address, ...
When pattern matches a mail address, replace it by the corresponding address.
e
With lookups from indexed files such as DB or DBM, or from networked tables such as NIS, LDAP or SQL, each user@domain query produces a sequence of query patterns as described below. Each query pattern is sent to each specified lookup table before trying the next query pattern, until a match is found.
...
@domain address, address, ...
Redirect mail for other users in domain to address.
e
The lookup result is subject to address rewriting: When the result has the form
@otherdomain
, the result becomes the same user inotherdomain
. This works only for the first address in a multi-address lookup result.
Portanto, colocar isso em /etc/postfix/virtual
atingirá o alias de domínio completo desejado:
# map any <user>@alias.com to the matching <user>@main.com
@alias.com @main.com
Então, como esse arquivo é uma tabela de hash, você precisa executar postmap
( explicação , manpage ):
postmap /etc/postfix/virtual
Você pode encontrar mais informações sobre domínios virtuais no HOWTO de domínio virtual do Postfix e sobre aliases no HOWTO de reescrita de endereços de postagens .
@Josh M.
Não tenho ideia se este é o caminho certo e / ou boa prática, mas estou usando algo assim:
virtual_alias_maps = regexp:/etc/postfix/domain_rewriting pgsql:/etc/postfix/pgsql/ virtual_alias_maps.cf
$ cat /etc/postfix/domain_rewriting
/^(.*)@domain1.com$/ ${1}@domain2.com
Esta é a minha versão curta da resposta do @ sam-hanes (que funcionou para mim)
Em seu virtual_alias_maps adicione:
@from.domain <tab> @to.domain
Na linha de comando, faça:
postmap /path/to/yourvirtualalismapsfile
No seu arquivo main.cf , adicione:
virtual_alias_domains : from.domain
virtual_alias_domains informa ao postfix que todos os endereços de caixa de correio que estão na forma de [email protected] são todos os aliases.
Tags postfix