Frage Verwenden Sie Postfix, um E-Mails an eine Domäne an dieselbe Adresse in einer anderen Domäne weiterzuleiten


Gibt es eine Möglichkeit, Postfix so zu konfigurieren, dass alle E-Mails für eine Domäne (Catch-All) akzeptiert werden und diese E-Mail an denselben Empfänger in einer anderen Domäne weitergeleitet wird, ohne zu wissen, ob der Empfänger tatsächlich existiert?

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


7
2017-09-19 15:47


Ursprung




Antworten:


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 es, SQL (substr + concat) zu verwenden, um dies für Sie in der virtual_alias_maps.

Bearbeiten: Oh. Es gibt eine letzte Möglichkeit. Benutze die Policy Delegation Mechanismus und Rückkehr REDIRECT localpart@other-domain.example wo du es brauchst und DUNNO wenn du nicht umschreiben willst.

Bearbeiten 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 legen

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

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


8
2017-09-19 16:33



Die dritte Lösung funktionierte für mich. allerdings musste ich das installieren postfix-pcre Paket (Ubuntu 12.10) - scytale


Der pcre-Tabellentyp ist auf meinem System nicht verfügbar. Daher habe ich Folgendes getan:

  • Im /etc/postfix/main.cf:

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

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

1
2017-09-12 22:50





Wenn Sie MySQL als Speicherende verwenden, glaube ich, dass Sie einen Catch all forward wie folgt angeben können:

Tabellenweiterleitungen

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

Wenn ich das Dokumentationsrecht lese, würde das bedeuten, dass user1@example.com nun an user1@yoursite.com usw. weitergeleitet wird.

Ich habe das gefunden Dieses Howtoforge-Tutorial


0
2018-03-13 14:26





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

Im main.cf:

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

Im /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 eigentliche Ergebnis in mail.log (Ich habe Amavis auf Port 10025 läuft):

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

Key-Zeile getrennt für die Betonung:

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

0
2018-04-07 02:52





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

bearbeiten

Sie können auch eine Weiterleitung einrichten, die es Ihnen leicht macht.

In /etc/postfix/main.cf fügen Sie Folgendes hinzu:

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

Dann fügen Sie in /etc/postfix/forward_bcc.pcre Folgendes hinzu:

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

Dies ist ein bisschen ein Hack, aber es wird für die Weiterleitung bestimmter Benutzer von einer Domäne zu einer anderen funktionieren.

Sie möchten vielleicht auch sehen diese Seite für das Umschreiben innerhalb von Postfix.


-1
2017-09-19 15:59



Kannst du genauer sein? Ich weiß, dass ich spezifizieren kann @somedomain.com um alle Nachrichten an a weiterzuleiten Spezifisch Adresse, aber ich möchte wissen, ob ich auf die gleich Empfänger. - Abraham Vegh
in / etc / aliases setze es so auf. $ Benutzername: $ username@newdomain.com - Squidly
@Squidly Ihre Bearbeitung ist kein regulärer Ausdruck und funktioniert nicht. Kommentar zu / etc / aliases funktioniert nicht, da das OP nur virtuelle Benutzer hat. - mailq
@mailq. Das ist LIVE auf MEINE Server jetzt. Es funktioniert perfekt für mehrere Weiterleitungen. Er sagte auch nicht, dass dies NUR virtuelle Benutzer waren. Es gab auch Optionen zu sehen. - Squidly