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.