Utilizzare Postfix per inoltrare la posta a un dominio allo stesso indirizzo a un dominio diverso


8

Esiste un modo per configurare Postfix in modo che accetti qualsiasi posta per un dominio (catch-all) e quindi inoltri quell'e-mail allo stesso destinatario in un dominio diverso, ignaro dell'esistenza effettiva del destinatario?

Uso Postfix con un supporto MySQL per account virtuali.

Risposte:


8

No, questo non è direttamente possibile. C'è un'eccezione su come può funzionare descritta in http://www.postfix.org/ADDRESS_REWRITING_README.html#luser_relay

Un'altra soluzione grezza sarebbe quella di utilizzare SQL (substr + concat) per gestirlo nel virtual_alias_maps.

Modifica : Oh. C'è un'ultima possibilità. Utilizzare il meccanismo di delega delle politiche e tornare REDIRECT localpart@other-domain.exampledove serve e DUNNOse non si desidera riscrivere.

Modifica 2 : Ispirato da Squidly (ma la sua soluzione non funziona!) È possibile impostare

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

e in quel file messo

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

(Fai attenzione al punto di escape (\.) Nella prima colonna.) Personalmente preferirei questa versione.


la terza soluzione ha funzionato per me. tuttavia ho dovuto installare il postfix-pcrepacchetto (ubuntu 12.10)
scytale,

1

Il tipo di tabella pcre non è disponibile sul mio sistema, quindi ho fatto quanto segue:

  • In /etc/postfix/main.cf:

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

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

0

Se usi MySQL come end di archiviazione, credo che tu possa specificare un catch in avanti come questo:

Inoltri tabella

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

Se leggo bene la documentazione, significherebbe che user1@example.com verrà ora inoltrato a user1@yoursite.com, ecc.

Ho trovato questo in questo tutorial howtoforge


0

Non direttamente possibile? L'ho trovato molto semplice e diretto senza SQL, espressioni regolari o meccanismi di policy.

In main.cf:

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

In /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

Invio di un'e-mail di prova dal server:

# 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 il risultato effettivo in mail.log (ho amavis sulla porta 10025 in esecuzione):

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

Linea chiave separata per enfasi:

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

A seconda della configurazione di Postfix, potresti essere in grado di utilizzare un alias per inoltrare tutta la posta.

modificare

Inoltre puoi impostare un reindirizzamento che lo farà facilmente per te.

In /etc/postfix/main.cf aggiungi questo:

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

Quindi in /etc/postfix/forward_bcc.pcre aggiungi questo:

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

Questo è un po 'un trucco, ma funzionerà per l'inoltro di utenti specifici da un dominio all'altro.

Puoi anche dare un'occhiata a questa pagina per sapere come eseguire una riscrittura in Postfix.


Può essere più preciso? So che posso specificare @somedomain.comdi inoltrare tutta la posta a un indirizzo specifico , ma voglio sapere se posso inoltrare allo stesso destinatario.
Abraham Vegh,

in / etc / aliases impostalo in questo modo. $ username: $username@newdomain.com
Squidly

@Squidly La tua modifica non è un'espressione regolare e non funzionerà. Commenti su / etc / aliases non funzioneranno poiché l'OP ha solo utenti virtuali.
mailq,

@mailq. Questo è LIVE sul mio server in questo momento. Funziona perfettamente per reindirizzamenti multipli. Inoltre non ha detto che questi erano SOLO utenti virtuali. Stava anche dando opzioni da guardare.
Squidly,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.