Postfix: Was genau sind Alias-Domains?

12

Ich dachte, ich verstehe "Alias-Domains" als einen Alias ​​für eine andere Domain! Wenn ich also ein Postfach wie "[email protected]" einrichte und "alias.com" als Domain-Alias ​​für "main.com" hinzufüge, funktioniert auch die Adresse "[email protected]" ... Aber nein !

Also habe ich diese Domains hinzugefügt:

  • main.com
  • alias.com

Ich habe dieses Postfach erstellt:

Dann habe ich diese Aliasdomänen zugeordnet:

  • alias.com => main.com

Und wenn ich dann eine Mail an [email protected] sende, erhalte ich folgende Fehlermeldung:

Recipient address rejected: User unknown in virtual mailbox table (state 13).

Ich möchte nicht für jede Domain einen Alias ​​erstellen, da ich einige habe. Ich möchte auch keinen Platzhalter (wie info @ *) verwenden, da es auch andere Domains gibt, deren Aliase nicht sindmain.com

Also ... was sind das genau?

Skerit
quelle
Ich habe dasselbe erwartet und verstehe immer noch nicht, warum das nicht der Fall ist.
Josh M.

Antworten:

4

Die Erklärung finden Sie in der Dokumentation: http://www.postfix.org/VIRTUAL_README.html#virtual_alias

Sie möchten "Alias-Postfächer", auch bekannt als "virtual_mailbox_alias" und "virtual_mailbox_maps", sprechen jedoch über "Alias-Domänen": http://www.postfix.org/ADDRESS_CLASS_README.html#virtual_alias_class

mailq
quelle
3
Ich kann den Dokumenten keinen Sinn geben - wie haben Sie einen domain1.comAlias ​​für ein Postfach <mailbox>@domain2.com?
Josh M.
2
@ JoshM. Sie können eine Hash-Tabelle virtual_alias_mapsmit einem Eintrag des Formulars verwenden @domain1.com @domain2.com. Siehe meine Antwort für Details.
Sam Hanes
12

Das Hinzufügen alias.comzu virtual_alias_domainsist der richtige erste Schritt, aber das teilt Postfix nur mit, dass Sie diese Domain für Aliase verwenden möchten. Es sagt nicht, was die Aliase sein sollten. Dazu müssen Sie eine virtuelle Alias-Map verwenden.

Fügen Sie zunächst Folgendes hinzu main.cf:

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

Durch Hinzufügen erhalten virtual_alias_mapsSie eine Datei ( /etc/postfix/virtual), die als virtuelle Aliaszuordnung verwendet wird. Aber was steckst du in diese Datei? Laut der virtuellen (5) Manpage :

Das Eingabeformat für den Befehl postmap (1) lautet wie folgt:

  pattern address, address, ...

Wenn das Muster mit einer E-Mail-Adresse übereinstimmt, ersetzen Sie es durch die entsprechende Adresse.

und

Bei Suchvorgängen aus indizierten Dateien wie DB oder DBM oder aus vernetzten Tabellen wie NIS, LDAP oder SQL erzeugt jede user @ domain-Abfrage eine Folge von Abfragemustern, wie unten beschrieben. Jedes Abfragemuster wird an jede angegebene Nachschlagetabelle gesendet, bevor das nächste Abfragemuster versucht wird, bis eine Übereinstimmung gefunden wird.

...

@domain address, address, ...

Leiten Sie E-Mails für andere Benutzer in der Domäne an die Adresse um.

und

Das Suchergebnis muss neu geschrieben werden: Wenn das Ergebnis das Formular hat @otherdomain, wird das Ergebnis zum selben Benutzer in otherdomain. Dies funktioniert nur für die erste Adresse in einem Suchergebnis mit mehreren Adressen.

Wenn Sie dies /etc/postfix/virtualeingeben, erhalten Sie den gewünschten Alias ​​für die gesamte Domäne:

# map any <user>@alias.com to the matching <user>@main.com
@alias.com     @main.com

Da es sich bei dieser Datei um eine Hash-Tabelle handelt, müssen Sie Folgendes ausführen postmap( Erläuterung , Manpage ):

postmap /etc/postfix/virtual

Weitere Informationen zu virtuellen Domänen finden Sie im HOWTO für virtuelle Postfix-Domänen und zu Aliasnamen im HOWTO zum Umschreiben von Postfix-Adressen .

Sam Hanes
quelle
Die PostfixAdmin-Schnittstelle weist also einen Fehler auf , da die Schnittstelle ( edit.php?table=aliasdomain) dem Benutzer nicht sagt, dass tatsächlich kein Alias auftritt, wenn sie als aktiviert markiert wird.
Peter Krauss
2
Ich würde nicht sagen, dass es genau ein Fehler ist, da es tatsächlich eine virtuelle Aliasdomäne konfiguriert. Ich vermute eher, dass PostfixAdmin erwartet, dass Sie wissen, was virtuelle Postfix-Aliasdomänen sind, und dass Sie auch tatsächliche Aliase hinzufügen müssen, damit sie etwas tun. Es wäre wahrscheinlich besser, wenn es dir das sagen würde.
Sam Hanes
1

@ Josh M.

Ich habe keine Ahnung, ob dies der richtige Weg und / oder eine gute Praxis ist, aber ich verwende so etwas:

virtual_alias_maps = regexp:/etc/postfix/domain_rewriting pgsql:/etc/postfix/pgsql/     virtual_alias_maps.cf

$ cat /etc/postfix/domain_rewriting 
/^(.*)@domain1.com$/     ${1}@domain2.com
Maximilian Kaul
quelle
1
Die Verwendung einer Regex-Tabelle ist zwar nicht genau falsch (sie wird das tun, was Sie erwarten), aber weniger effizient als die Verwendung einer Hash-Tabelle mit der @domain1.com @domain2.comSyntax, die ich in meiner Antwort beschrieben habe.
Sam Hanes
1

Dies ist meine Kurzversion der Antwort von @ sam-hanes (die bei mir funktioniert hat)

Fügen Sie in Ihren virtual_alias_maps Folgendes hinzu:

@from.domain <tab> @to.domain

In der Befehlszeile tun Sie:

 postmap /path/to/yourvirtualalismapsfile

Fügen Sie in Ihrer main.cf- Datei Folgendes hinzu:

virtual_alias_domains : from.domain

virtual_alias_domains teilt postfix mit, dass alle Postfachadressen in Form von [email protected] Aliase sind.

ychaouche
quelle