Use o Postfix para encaminhar emails para um domínio para o mesmo endereço em um domínio diferente


8

Existe uma maneira de configurar o Postfix para aceitar qualquer email de um domínio (catch-all) e encaminhá-lo para o mesmo destinatário em um domínio diferente, sem saber se o destinatário realmente existe?

Eu uso o Postfix com o suporte do MySQL para contas virtuais.

Respostas:


8

Não, isso não é diretamente possível. Há uma exceção sobre como ele pode funcionar descrito em http://www.postfix.org/ADDRESS_REWRITING_README.html#luser_relay

Outra solução bruta seria usar SQL (substr + concat) para lidar com isso para você no virtual_alias_maps.

Edit : Oh. Há uma última possibilidade. Use o mecanismo de delegação de políticas e retorne REDIRECT localpart@other-domain.exampleonde precisar e DUNNOse não quiser reescrever.

Edit 2 : Inspirado por Squidly (mas sua solução não funciona!), Você pode configurar

virtual_alias_maps = pcre:/etc/postfix/forward_user.pcre, ...

e nesse arquivo colocar

/^(.*)@adomain\.example/    $(1)@other-domain.example

(Cuidado com o ponto de escape (\.) Na primeira coluna.) Pessoalmente, eu preferiria esta versão.


a terceira solução funcionou para mim. no entanto, eu tive que instalar o postfix-pcrepacote (ubuntu 12.10) #
— 1018

1

O tipo de tabela pcre não está disponível no meu sistema, então fiz o seguinte:

  • Em /etc/postfix/main.cf:

    virtual_alias_maps = regexp:/etc/postfix/virtual
    
  • Em /etc/postfix/virtual:

    /^([^@]*)@olddomain/ $(1)@newdomain
    

0

Se você usa o MySQL como o fim do armazenamento, acredito que você pode especificar um catch para a frente como este:

Encaminhamentos de tabela

| source       | destination   |
|==============|===============|
| @example.com | @yoursite.com |

Se eu ler a documentação corretamente, isso significa que o usuário1@exemplo.com agora será encaminhado para o usuário1@seu site.com etc.

Encontrei isso neste tutorial da howtoforge


0

Não é possível diretamente? Achei muito simples e direto, sem SQL, expressões regulares ou mecanismos de política.

Em main.cf:

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

Em /etc/postfix/virtual:

# I want @true-destination.com to have two incoming aliases
@alias-destination1.com @true-destination.com
@alias-destination2.com @true-destination.com

Enviando um email de teste do servidor:

# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 smtp.myserver.com ESMTP Postfix
HELO smtp.myserver.com
250 smtp.myserver.com
MAIL FROM:<somebody@gmail.com>
RCPT TO:<anyuser@alias-destination1.com>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Message-ID: <4DC3723F.8010907@myserver.com>                                                                                                               
Date: Thu, 05 May 2011 23:59:59 -0400                                                                                                                    
From: Some Body <somebody@gmail.com>                                                                                                                   
To: anyuser@alias-destination1.com                                                                                                                                
Subject: Hello                                                                                                                                           
Just testing.                                                                                                                                            
.

E o resultado real no mail.log (eu tenho o amavis na porta 10025 em execução):

Apr  6 22:39:43 smtp-a postfix/smtpd[4411]: connect from localhost[127.0.0.1]
Apr  6 22:39:43 smtp-a postfix/smtpd[4411]: 6B47641AF2: client=localhost[127.0.0.1]
Apr  6 22:39:43 smtp-a postfix/cleanup[3706]: 6B47641AF2: message-id=<4DC3723F.8010907@myserver.com>
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 6B47641AF2: from=<somebody@gmail.com>, size=1115, nrcpt=1 (queue active)
Apr  6 22:39:43 smtp-a postfix/smtpd[4411]: disconnect from localhost[127.0.0.1]
Apr  6 22:39:43 smtp-a amavis-incoming[2159]: (02159-13) Passed CLEAN {RelayedInternal}, LOCAL [127.0.0.1]:42426 [127.0.0.1] <somebody@gmail.com> -> <anyuser@alias-destination1.com>, Queue-ID: 5C61F41AE5, Message-ID: <4DC3723F.8010907@myserver.com>, mail_id: hUbzH1PtXlzl, Hits: 2.605, size: 394, queued_as: 6B47641AF2, 1224 ms
Apr  6 22:39:43 smtp-a postfix/lmtp[3687]: 5C61F41AE5: to=<anyuser@alias-destination1.com>, relay=127.0.0.1[127.0.0.1]:10024, delay=25, delays=24/0/0/1.2, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 6B47641AF2)
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 5C61F41AE5: removed

Linha-chave separada para ênfase:

Apr  6 22:39:43 smtp-a postfix/smtp[3684]: 6B47641AF2: to=<anyuser@true-destination.com>, orig_to=<anyuser@alias-destination1.com>, relay=10.0.0.245[10.0.0.245]:2525, delay=0.03, delays=0.01/0/0/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 705AA40459)
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 6B47641AF2: removed

-1

Dependendo da configuração do Postfix, você poderá usar um alias para encaminhar todos os emails.

editar

Além disso, você pode configurar um redirecionamento que o fará facilmente.

Em /etc/postfix/main.cf, adicione isto:

recipient_bcc_maps = pcre:/etc/postfix/forward_bcc.pcre

Em /etc/postfix/forward_bcc.pcre, adicione este:

/^user@olddomain.com/ user@newdomain.com

Isso é um pouco complicado, mas funcionará para encaminhar usuários específicos de um domínio para outro.

Você também pode consultar esta página para saber como reescrever o Postfix por si próprio.


Você pode ser mais específico? Sei que posso especificar o @somedomain.comencaminhamento de todos os emails para um endereço específico , mas quero saber se posso encaminhar para o mesmo destinatário.
— Abraham Vegh

em / etc / aliases, configure-o assim. $ username: $username@newdomain.com
— Squidly

@Squidly Sua edição não é uma expressão regular e não funciona. Você comenta sobre / etc / aliases não funcionará, pois o OP possui apenas usuários virtuais.
— mailq

@mailq. Que está LIVE no MEU servidor agora. Funciona perfeitamente para vários redirecionamentos. Ele também não disse que esses eram apenas usuários virtuais. Também estava dando opções para olhar.
— Squidly
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.