Verwenden Sie Postfix, um E-Mails an eine Domain an dieselbe Adresse in einer anderen Domain weiterzuleiten

8

Gibt es eine Möglichkeit, Postfix so zu konfigurieren, dass E-Mails für eine Domain akzeptiert werden (Catch-All) und diese E-Mail dann an denselben Empfänger in einer anderen Domain weiterzuleiten, ohne zu wissen, ob der Empfänger tatsächlich vorhanden ist?

Ich verwende Postfix mit MySQL-Unterstützung für virtuelle Konten.

Abraham Vegh
quelle

Antworten:

8

Nein, das ist nicht direkt möglich. Es gibt eine Ausnahme, wie es funktionieren kann, beschrieben in http://www.postfix.org/ADDRESS_REWRITING_README.html#luser_relay

Eine andere grobe Lösung wäre, SQL (substr + concat) zu verwenden, um dies für Sie in der zu erledigen virtual_alias_maps.

Edit : Oh. Es gibt eine letzte Möglichkeit. Verwenden Sie den Mechanismus zur Delegierung von Richtlinien und kehren REDIRECT [email protected]Sie dorthin zurück, wo Sie ihn benötigen und DUNNOwenn Sie nicht neu schreiben möchten.

Edit 2 : Inspiriert von Squidly (aber seine Lösung funktioniert nicht!) Können Sie einrichten

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

und in diese Datei setzen

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

(Achten Sie auf den maskierten Punkt (\.) In der ersten Spalte.) Persönlich würde ich diese Version bevorzugen.

mailq
quelle
Die dritte Lösung hat bei mir funktioniert. Allerdings musste ich das postfix-pcrePaket installieren (Ubuntu 12.10)
scytale
1

Der PCRE-Tabellentyp ist auf meinem System nicht verfügbar, daher habe ich Folgendes ausgeführt:

  • In /etc/postfix/main.cf:

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

    /^([^@]*)@olddomain/ $(1)@newdomain
    
Richard Hansen
quelle
0

Wenn Sie MySQL als Speicherende verwenden, können Sie meines Erachtens einen Catch All Forward wie folgt angeben:

Tabellenweiterleitungen

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

Wenn ich die Dokumentation richtig lese, bedeutet dies, dass [email protected] jetzt an [email protected] usw. weitergeleitet wird.

Ich habe dies in diesem Howtoforge-Tutorial gefunden

HectorMalot
quelle
0

Nicht direkt möglich? Ich fand es sehr einfach und direkt ohne SQL, reguläre Ausdrücke oder Richtlinienmechanismen.

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

Senden einer Test-E-Mail vom 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:<[email protected]>
RCPT TO:<[email protected]>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Message-ID: <[email protected]>                                                                                                               
Date: Thu, 05 May 2011 23:59:59 -0400                                                                                                                    
From: Some Body <[email protected]>                                                                                                                   
To: [email protected]                                                                                                                                
Subject: Hello                                                                                                                                           
Just testing.                                                                                                                                            
.

Und das tatsächliche Ergebnis in mail.log (ich habe amavis auf Port 10025 ausgeführt):

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=<[email protected]>
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 6B47641AF2: from=<[email protected]>, 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] <[email protected]> -> <[email protected]>, Queue-ID: 5C61F41AE5, Message-ID: <[email protected]>, 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=<[email protected]>, 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

Schlüsselzeile zur Hervorhebung getrennt:

Apr  6 22:39:43 smtp-a postfix/smtp[3684]: 6B47641AF2: to=<[email protected]>, orig_to=<[email protected]>, 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
BaseZen
quelle
-1

Abhängig davon, wie Sie Ihr Postfix einrichten, können Sie möglicherweise einen Alias ​​verwenden, um alle E-Mails weiterzuleiten.

bearbeiten

Sie können auch eine Umleitung einrichten, die dies problemlos für Sie erledigt.

Fügen Sie in /etc/postfix/main.cf Folgendes hinzu:

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

Fügen Sie dann in /etc/postfix/forward_bcc.pcre Folgendes hinzu:

/^[email protected]/ [email protected]

Dies ist ein bisschen wie ein Hack, aber es funktioniert, um bestimmte Benutzer von einer Domain zu einer anderen weiterzuleiten.

Vielleicht möchten Sie auch auf dieser Seite nachsehen, wie Sie in Postfix selbst umschreiben können.

Tintenfisch
quelle
Kannst du genauer sein? Ich weiß, dass ich angeben kann, dass @somedomain.comalle E-Mails an eine bestimmte Adresse weitergeleitet werden sollen, aber ich möchte wissen, ob ich an denselben Empfänger weiterleiten kann .
Abraham Vegh
in / etc / aliases richten Sie es so ein. $ Benutzername: [email protected]
Squidly
@Squidly Ihre Bearbeitung ist kein regulärer Ausdruck und funktioniert nicht. Sie kommentieren / etc / aliases nicht, da das OP nur virtuelle Benutzer hat.
Mailq
@mailq. Das ist LIVE auf MEINEM Server. Es funktioniert perfekt für mehrere Weiterleitungen. Er sagte auch nicht, dass dies NUR virtuelle Benutzer seien. Es gab auch Optionen zum Anschauen.
Squidly