Hsadmin-mail
Diese Seite beschreibt die Verwaltung von E-Mail-Adressen mit dem Programm hsadmin.
Zur Zeit ist nur das Programm nur von der Kommandozeile zu bedienen.
WICHTIG
1. Die Konfigurationsdateien etc/virtusertable in den Paketen sind damit nicht mehr Teil der E-Mail-Konfiguration. Deren Inhalt ist noch unter etc/.virtusertable.old-robot lesbar. (Siehe auch den Abschnitt zum virtusertable-Format unten.)
2. E-Mail-Adressen mit Umlauten (außer in der Domain, wo die IDN-Kodierung verwendet wird) sind derzeit noch nicht zulässig, und wurden NICHT übernommen.
E-Mail-Verwaltung mit WebFrontend
E-Mail anlegen und bearbeiten ist nun auch per Browser mit unserem WebFrontend möglich.
Verwendung von hsadmin zur E-Mail-Verwaltung
Diese Funktion dient der Einrichtung von E-Mail-Aliasen und -Weiterleitungen. Anders als bei der Datei aliases (die Emails an Mailboxen weiterleitet), werden hier Emails an bestimmte Email-Adressen weitergeleitet. Diese Zieladressen müssen nicht notwendigerweise einem Unix-Acccount auf dem Server entsprechen, d.h. es werden zumindest für Mail-Zwecke virtuelle Benutzer eingerichtet. (Das ist die einzige sinnvoll Art, Adressen auf einem Server mit vielen Domains zu vergeben, da es z.B. nur einen Unix-User xyz00-webmaster geben könnte, der aber Ziel der webmaster@...-Adressen mehrerer Domins im Paket xyz00 sein kann.)
Die Zieladresse (target) einer mit hsadmin-mail eingerichteten Weiterleitung muss natürlich einer funktionierenden Mailbox entsprechen. Dies kann nicht nur ein lokal eingerichteter POP3- oder IMAP-User sein, sondern auch eine Adresse bei einem anderen Provider.
Möchte man den E-Mail-Verkehr einer Domain nicht über die normalen Hostsharing-Mailserver, sondern über einen anderen Server abwickeln, so darf keine einzige Mailadresse für diese Domain eingerichtet sein! Dadurch wird die Domain nicht mehr als "lokal" betrachtet, sondern eingehende E-Mails an Adressen dieser Domain werden an die laut Zonefile zuständigen Mailserver weiterschickt.
Die Adressen werden als eine Zusammensetzung von {localpart}, {subdomain} und {domain} betrachtet. Dabei ist {domain} jede aufgeschaltete Domain und kann Subdomains enthalten. Für die Arbeit mit hsadmin enthält {subdomain} nur subdomains, die nicht separat aufgeschaltet wurden.
Syntaxbeispiele
Die untenstehende Befehle müssen natürlich jeweils in einer einzigen Zeile eingegeben werden. Hier werden sie lesbarkeitshalber mit einem Escape-Zeichen ('\') vor dem Zeilenende dargestellt.
Alle vorhandenen E-Mail-Adressen auflisten
hsadmin -c emailaddress.search
Die Datenfelder nach einem vorgegebenen Muster ausgeben
In folgendem Beispiel wird mit der Option '-d' ein Muster für die Ausgabe angeführt.
hsadmin -c emailaddress.search \ -d '${localpart}:${subdomain}:${domain}:${target}\n'
Alle vorhandenen E-Mail-Adressen zu einer Domain auflisten
In folgendem Beispiel wird mit der Option '-w domain=' die Suche auf eine bestimmte Domain eingeschränkt.
hsadmin -c emailaddress.search -w domain='example.de' -d '${id}:${localpart}@${subdomain}.${domain}:${target}\n'
Damit erhältst du eine Liste der E-Mail-Adressen der Domain example.de in der Form:
{ZAHL}:muster@.example.de:xyz00-test, test@example.de
wobei {ZAHL} eine eindeutige Kennzahl ('id') für die angezeigte Weiterleitung ist. Der Eintrag kann auch anhand dieser Zahl angesprochen werden (siehe unten).
Wenn wie in diesem Beispiel der Wert von 'subdomain' leer ist, wird trotzdem der Punkt nach dem @-Zeichen ausgegeben, weil er in dem Muster-String mit der Option '-d' angegeben wurde.
Eine E-Mail-Adresse hinzufügen
hsadmin --call:emailaddress.add \ --set:localpart='test' \ --set:domain='example.com' \ --set:target='xyz00-test'
Um eine Weiterleitung an mehrere Zieladressen einzurichten, gibt man diese durch Komma getrennt an:
... --set:target='xyz00-test, xyz00-test2' ...
In dem Beispiel oben erscheint die Langform der Optionen. Die Kurzform ist ebenso möglich:
hsadmin -c emailaddress.add \ -s localpart='test' \ -s domain='example.com' \ -s target='xyz00-test, test@example.org'
Das Ziel einer E-Mail-Adresse ändern:
hsadmin -c emailaddress.update -s target='xyz00-test' test@example.de
wobei:
test@example.de die E-Mail-Adresse, die bearbeitet wird, und
xyz00-test die neue Zieladresse ist.
Hier sind natürlich auch mehrfache Zieladresse möglich:
... -s target='xyz00-test, xyz00-neu, info@example.de' ...
Damit werden eingehende Mails an drei Adressen gleichzeitig weitergeleitet.
Alle E-Mail-Adressen einer Domain weiterleiten
Eine Catch-All-Weiterleitung kann man dadurch einrichten, dass man für Ziel und Quelle eine leere Local-Part angibt:
hsadmin -c emailaddress.add -s localpart='' \ -s domain='example.de' -s target='@example.org'
In diesem Beispiel werden alle für Adressen in example.de eingehende Mails an die Domain example.org weitergeleitet.
Eine E-Mail-Adresse löschen
hsadmin -c emailaddress.delete test@example.com
Die zu löschende Weiterleitung kann kann auch mit ihrer Kennzahl angesprochen werden:
hsadmin -c emailaddress.delete -w id=[ZAHL]
wobei [ZAHL] die Kennzahl der Weiterleitung ist, wie sie in der Ausgabe von hsadmin erscheint (siehe Beispiele oben).
Alle E-Mail-Adressen in einer Domain löschen
hsadmin -c emailaddress.delete -w domain=example.com
Beachte bitte, dass Adressen in einer separat aufgeschaltete Subdomain, wie z.B. www.example.com, von dem obigen Befehl nicht betroffen werden.
Weitere Beispiele
Beschreibung | domain | localpart | target |
---|---|---|---|
Alle Mails an @example.com an gleichnamige Adressen auf example.org weiterleiten | example.com | '' (2 mal ') | '@example.org' |
Mails für name1@example.com an eine andere Adresse weiterleiten | example.com | name1 | xyz@example.org |
Mails an name1@example.com an mehrere andere Adressen weiterleiten | example.com | name1 | 'xyz1@example.org, xyz2@example.org' |
Alle anderen eingehenden Mails an nicht definierte Adressen der Domain example.com an eine bestimmte Adresse weiterleiten ("catch-all") | example.com | '' (2 mal ') | 'xyz@example.org' |
Mehrere Aliases an die Mailbox (POP3, IMAP) eines lokalen Benutzer weiterleiten: | example.com | name3 | xyz00-hans |
example.com | name4 | xyz00-hans | |
Mails an name6@example.com auf dem Server löschen (nach /dev/null umleiten) | example.com | name6 | nobody |
virtusertable-Format
Die Datei etc/virtusertable ist nicht mehr Teil der E-Mail-Konfiguration.
Das Zeilenformat der Datei virtusertable ist: 'source whitespace target[, target]', also die weiterzuleitende Email-Adresse gefolgt von Whitespace und komma-separierter Liste von Zieladressen, z.B.:
otto@example.org xyz00-otto verteiler@example.org xyz00-otto, susi@example.com
Export der E-mail-Adressen ins virtusertable-Format
Will man sich die E-mail-Adressen im Format der virtusertable auflisten lassen, kann folgende Kommandozeile benutzt werden:
DOMAIN=example.org hsadmin -c emailaddress.search -w domain=${DOMAIN} \ -d '${subdomain}:${localpart}@${subdomain}.${domain}\t${target}\n' \ | sort | sed -e 's/^[^:]*://' -e 's/@\./@/'
Dabei wird zunächst eine Liste erstellt, die am Anfang die Subdomain enthält. Anschließend wird durch sort so sortiert, daß die Subdomains zusammenstehen. Dann wird die Subdomain am Anfang mittels sed gelöscht, ebenso wie der Punkt zwischen '@' und Domainnamen, wenn keine Subdomain gesetzt ist.