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.