Postfix: o que exatamente são domínios de alias?

12

Eu pensei que tinha entendido "Domínios alias" como sendo simplesmente um alias para outro domínio! Então, quando eu configuro uma caixa de correio como "[email protected]" e adiciono "alias.com" como um alias de domínio para "main.com", o endereço "[email protected]" também funcionaria ... Mas não !

Então, eu adicionei estes domínios:

  • main.com
  • alias.com

Eu criei esta caixa de correio:

Em seguida, mapeei esses domínios de alias:

  • alias.com => main.com

E então, quando envio um email para [email protected], recebo este erro:

Recipient address rejected: User unknown in virtual mailbox table (state 13).

Não quero criar um alias para cada domínio, pois tenho alguns. Também não quero usar um curinga (como info @ *) porque também existem outros domínios que não são aliases demain.com

Então ... o que são exatamente?

skerit
fonte
Eu esperava o mesmo e ainda não entendo por que não é esse o caso.
Josh M.

Respostas:

4

A explicação está na documentação: http://www.postfix.org/VIRTUAL_README.html#virtual_alias

Você deseja "caixas de correio de alias", também conhecidas como virtual_mailbox_alias e virtual_mailbox_maps, mas fala sobre "domínios de alias": http://www.postfix.org/ADDRESS_CLASS_README.html#virtual_alias_class

mailq
fonte
3
Não consigo entender os documentos - como você tem o domain1.comapelido de qualquer caixa de correio <mailbox>@domain2.com?
Josh M.
2
@JoshM. Você pode usar uma tabela de hash virtual_alias_mapscom uma entrada do formulário @domain1.com @domain2.com. Veja minha resposta para detalhes.
Sam Hanes
12

Adicionar alias.coma virtual_alias_domainsé a primeira etapa correta, mas isso apenas informa ao Postfix que você deseja usar esse domínio para aliases. Não diz quais devem ser os apelidos. Para isso, você precisa usar um mapa de alias virtual.

Primeiro, adicione algo como isto para main.cf:

virtual_alias_domains = alias.com
virtual_alias_maps = hash:/etc/postfix/virtual

A adição virtual_alias_mapsfornece um arquivo ( /etc/postfix/virtual) usado como um mapa de alias virtual. Mas o que você coloca nesse arquivo? De acordo com a página de manual virtual (5) :

O formato de entrada para o comando postmap (1) é o seguinte:

  pattern address, address, ...

Quando o padrão corresponder a um endereço de email, substitua-o pelo endereço correspondente.

e

Com pesquisas de arquivos indexados, como DB ou DBM, ou de tabelas em rede, como NIS, LDAP ou SQL, cada consulta de domínio do usuário @ produz uma sequência de padrões de consulta, conforme descrito abaixo. Cada padrão de consulta é enviado para cada tabela de pesquisa especificada antes de tentar o próximo padrão de consulta, até que uma correspondência seja encontrada.

...

@domain address, address, ...

Redirecione o correio para outros usuários no domínio para endereçar.

e

O resultado da pesquisa está sujeito à reescrita de endereço: Quando o resultado tem o formulário @otherdomain, o resultado se torna o mesmo usuário otherdomain. Isso funciona apenas para o primeiro endereço em um resultado de pesquisa de vários endereços.

Portanto, colocar isso /etc/postfix/virtualalcançará o alias de domínio completo que você deseja:

# 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 , página de manual ):

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 reconfiguração de endereços do Postfix .

Sam Hanes
fonte
Portanto, a interface PostfixAdmin possui um bug , porque a interface ( edit.php?table=aliasdomain) falha ao dizer ao usuário que nenhum alias de fato ocorrerá ao sinalizá-la como habilitada.
Peter Krauss
2
Eu não diria que é um bug exatamente, uma vez que de fato configura um domínio de alias virtual. Em vez disso, suspeito que o PostfixAdmin espera que você saiba quais são os domínios de alias virtuais do Postfix e que você também precisa adicionar aliases reais para fazê-los fazer qualquer coisa. Provavelmente seria melhor se isso lhe dissesse isso.
Sam Hanes
1

@Josh M.

Não tenho idéia se esse é o caminho certo e / ou boas práticas, mas estou usando algo como isto:

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
Maximilian Kaul
fonte
1
Embora não seja exatamente incorreto (ele fará o que você espera), usar uma tabela regex é menos eficiente do que usar uma tabela hash com a @domain1.com @domain2.comsintaxe que eu detalhei na minha resposta.
Sam Hanes
1

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 na forma de [email protected] são todos aliases.

ychaouche
fonte