Hsadmin-mail

Aus Hostsharing Wiki
Version vom 17. Juni 2009, 07:07 Uhr von Apc00-tony (Diskussion | Beiträge) (Stilistische Überarbeitung)
Zur Navigation springen Zur Suche springen

E-Mail-Adressen mit hsadmin verwalten.

Zur Zeit nur die Bedienung per Kommandozeile freigeschaltet. Das Kommandozeilen-Programm ist dabei identisch mit dem für UNIX-User.

WICHTIG

1. Die Konfigurationsdateien etc/virtusertable in den Paketen sind damit außer Betrieb und wurden bereits gelöscht.

       (noch unter etc/.virtusertable.old-robot lesbar)

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.

Verwendung von hsadmin-mail

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

Alle vorhandenen E-Mail-Adressen auflisten

hsadmin -c emailaddress.search

Die Datenfelder localpart, subdomain, domain und target mit ":" getrennt zeilenweise ausgeben:

hsadmin -c emailaddress.search \
-d '${localpart}:${subdomain}:${domain}:${target}\n'

Alle vorhandenen E-Mail-Adressen zu einer Domain auflisten

hsadmin -c emailaddress.search -w domain.name='example.de' -d 
'${id}:${localpart}@${subdomain}.${domain}:${target}\n'

(alles in einer Zeile)

Dann erhälst du eine Liste der eMail Adressen der example.de Domain

ZAHL:muster@.example.de:xyz00-test, test@example.de

wobei ZAHL z.b. 4711 ist. der . nach dem @ ist bei keiner subdomain nur ein Anzeige Unschönheit.

Eine E-Mail-Adresse hinzufügen

hsadmin --call:emailaddress.add \
--set:localpart='test' \
--set:domain='example.com' \
--set:target='xyz00-test'

für x Weiterleitungen: --set:target='xyz00-test, xyz00-test2'

Hierbei habe ich zur Abwechslung die Langform der Optionen verwendet.

oder

hsadmin -c emailaddress.add  -s localpart='test' -s domain='example.com' 
-s target='xyz00-test, test@example.org'

(Achtung alles in einer Zeile)

Das Ziel einer E-Mail-Adresse ändern:

hsadmin -c emailaddress.update -s target='xyz00-test' test@example.de

test@example.de -> ist die eMail Adresse

xyz00-test -> ist das Ziel wohin die Mail gehen sollen.

target='xyz00-test, xyz00-neu, info@example.de' (Dann geht die Mail an 3 Adressen.)

Alle E-Mail-Adresse weiterleiten (catch-all):

hsadmin -c emailaddress.add -s localpart='' -s domain='example.de' -s target='@example.org'

Hierbei werden alle Mails von example.de an example.org weitergeleitet.

Eine E-Mail-Adresse löschen:

hsadmin -c emailaddress.delete test@example.com

oder

hsadmin -c emailaddress.delete -w id=ZAHL

(Zahl = z.B. 4711 siehe Ausgabe oben)


alle E-Mail-Adressen von example.com löschen:

hsadmin -c emailaddress.delete -w domain.name=example.com

Zu unterscheiden ist, ob eine Subdomain separat aufgeschaltet wurde, dann wird sie bei der Domain mit angegeben, oder ob sie nicht separat aufgeschaltet wurden, dann muss sie als Subdomain angegeben werden. Für E-Mail-Adressen der aufgeschalteten Domains wird die Subdomain nicht angegeben.

Es gelten des weiteren dieselben Hinweise bezüglich des Login wie vor einigen Tagen für die UNIX-User.

Einige 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

Export der E-mail-Adressen ins virtusertable-Format

Will man sich gerne die E-mail-Adressen im Format der virtusertable auflisten lassen, kann folgender Code auf der Kommandozeile benutzt werden:

DOMAIN=example.org

hsadmin -c emailaddress.search -w domain.name=${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 über sort sortiert, so daß die Subdomains zusammenstehen und abschließend die Subdomain am Anfang mittels sed gelöscht, ebenso wie der Punkt zwischen '@' und Domainnamen, wenn keine Subdomain gesetzt ist.

Das virtusertable-Format ist in der Form: 'source whitespace target [,target]', also die Email-Adresse gefolgt von Whitespace und komma-separierter Liste an Zielen, z.B.

otto@example.org         xyz00-otto
verteiler@example.org    xyz00-otto, susi@example.com