postfix - como você redireciona todos os emails para um usuário, por exemplo *@exemplo.com → usuário@exemplo.com


27

Estou usando o postfix no meu email. Sei que posso usar o comando / etc / aliases e newaliases para redirecionar certos emails, por exemplo, posso redirecionar root@example.com para user@example.com colocando root: usermeus / etc / aliases e depois executando newaliases. No entanto, gostaria de fazer o equivalente a *: user, para que todos os emails para example.com sejam enviados para user@example.com.

Como eu faço isso?

Respostas:


19

luser_relay = user@example.comno seu main.cfé o que você quer.

Para desativar a verificação do usuário e aceitar todos os e-mails, você precisa adicionar a local_recipient_maps =opção Documentação


11
Eu adicionei isso ao main.cf e reiniciei o postfix. Eu recebi o seguinte erro em /var/log/main.info: <pre> 550 5.1.1 <myrandom@example.org>: Endereço do destinatário rejeitado: Usuário desconhecido na tabela de destinatários locais; de = <me@gmail.com> a = <myrandom@example.org> </pre>
— Rory,

Portanto, example.org não está na sua lista de domínios de destinatários locais ou outra coisa foi configurada incorretamente.
— Womble

7
Eu consegui funcionar. Além da opção luser_relay mencionada, você também precisa adicionar a opção "local_recipient_maps =". Esta página de documentação do postfix explica que: postfix.org/postconf.5.html#luser_relay
— Rory

Esse método preserva o endereço de email Para? (os mapas virtuais reescreve-lo e ao original: endereço está perdido.)
— user14645

11
As perguntas do @Sverre destinam-se a perguntas, não a comentários de respostas de sete anos de idade para perguntas relacionadas tangencialmente.
— Womble

17

O que você está procurando é uma tabela de alias virtual e pode ser feita usando o seguinte ...

Primeiro você precisa editar ou criar, se ainda não existir, o arquivo / etc / postfix / virtual .

example.com   whatever
@example.com  user@example.com

Depois que isso for salvo, você precisará executar postmap /etc/postfix/virtualpara gerar o /etc/postfix/virtual.db indexado .

Você precisará editar o /etc/postfix/main.cf e certificar-se de que a seguinte linha não seja comentada:

virtual_alias_maps = hash:/etc/postfix/virtual

Na verdade, isso permitirá que o postfix saiba sobre a tabela de alias virtual e a use.

O problema com o uso da luser_relayopção, conforme mencionado anteriormente, é que ele é tratado como o usuário dos últimos recursos para endereços desconhecidos pelo agente de entrega local. Se o postfix estiver manipulando apenas emails para um domínio, isso poderá ser utilizado, mas poderá mascarar outros erros de configuração e provavelmente causará resultados inesperados se mais de um domínio estiver sendo tratado.

A única ressalva que me sinto obrigada a mencionar é que, ao criar um alias curinga dessa natureza, você está abrindo seu sistema de correio para aceitar mensagens para endereços que não existirão e corre o risco de ter a caixa de correio preenchida rapidamente com spam por não existir. caixas de correio.


8

Na verdade, é bastante simples. Tudo o que você precisa fazer é colocar algo assim no seu main.cfarquivo:

virtual_alias_maps = regexp:/etc/postfix/virtual_alias

A regexpparte faz o truque. Além disso, /etc/postfix/virtual_aliasvocê coloca algo assim:

/^test/ you@yourdomain.com

Neste exemplo, você deve receber todos os emails com destino começando com 'test'. Não esqueça de postmap / etc / postfix / virtual_alias e recarregar o postfix.


6

Para combinar uma resposta / comentário acima que funcionou mais facilmente para mim (eu tenho um domínio principal):
Adicione o seguinte a /etc/postfix/main.cf:

luser_relay = user@domain.com (or local system user)
local_recipient_maps =

( local_recipient_maps =não possui valor definido)

Eu uso uma conta linux de usuário local e também adiciono o mesmo usuário ao / etc / aliases para que o usuário obtenha todo o correio para root, postmaster, etc.

Você também pode combinar esse mesmo endereço na sua virtual_alias_mapse apontar qualquer captura de domínio virtual para a mesma conta principal.

Por favor, consulte luser_relay para mais informações.


3

Se você deseja usar um endereço abrangente para meu domínio, pode usar /etc/aliasescombinado com uma regex da seguinte maneira:

Em /etc/postfix/main.cfadição
alias_maps = hash:/etc/aliases, regexp:/etc/postfix/catch-all-local.regexp

Em /etc/postfix/catch-all-local.regexpadição
!/^owner-/ your-catch-all-user

Isso deve fazer o truque. Funcionou para mim e funciona com virtual_alias_maps definido em paralelo.


0

Existe um tipo de tabela de pesquisa estática menos conhecida no Postfix, que pode ser usado exatamente para esse fim:

alias_database = static:user@example.com
alias_maps = static:user@example.com

Se user@example.com não é local para este sistema, você provavelmente também deseja descartar todas as mensagens do salto, substituindo linhas que terminam com bouncecom discardem master.cfevitar os ciclos de correio.


-4

Eu odeio ser um killjoy, mas seu problema é que você está usando o Postfix. O Postfix dificulta precisamente esse exercício. Eu sei: eu tive que fazer isso alguns anos atrás e levou dias e dias para acertar. A luseropção é a certa, mas há outras coisas para acertar também. (E até o nome da opção mostra que os autores do Postfix realmente não queriam apoiar isso.)

Eu recomendo mudar para o Courier. O Courier suporta esse método "abrangente" de uma maneira muito mais sensata, devido à maneira como ele estende seu sistema de alias existente.


11
O Postfix não dificulta nada. Os aliases virtuais são a maneira padrão de realizar catchalls no Postfix e são muito fáceis. Dito isto, em qualquer coisa, exceto em um servidor de correio de brinquedo para seu próprio domínio pessoal, as capturas são uma péssima idéia.
— Rob Chanter
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.