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.

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 localpart@other-domain.exampleSie 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.


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
    

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 user1@example.com jetzt an user1@yoursite.com usw. weitergeleitet wird.

Ich habe dies in diesem Howtoforge-Tutorial gefunden


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:<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.                                                                                                                                            
.

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=<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

Schlüsselzeile zur Hervorhebung getrennt:

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

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:

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

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.


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: $username@newdomain.com
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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.