Hsadmin-mail: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
K (Stilistische Überarbeitung)
(Eingehende stilistische Überarbeitung; Gliederung bearbeitet)
Zeile 1: Zeile 1:
E-Mail-Adressen mit hsadmin verwalten.
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.  


Zur Zeit nur die Bedienung per Kommandozeile freigeschaltet.
Das Kommandozeilen-Programm ist dabei identisch mit dem für UNIX-User.
== WICHTIG ==
== WICHTIG ==
1. Die Konfigurationsdateien etc/virtusertable in den Paketen  
1. Die Konfigurationsdateien etc/virtusertable in den Paketen  
sind damit außer Betrieb und wurden bereits gelöscht.
sind damit nicht mehr Teil der E-Mail-Konfiguration. Deren
        ''(noch unter etc/.virtusertable.old-robot lesbar)''
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
2. E-Mail-Adressen mit Umlauten (außer in der Domain, wo die
Zeile 12: Zeile 13:
und wurden NICHT übernommen.
und wurden NICHT übernommen.


== Verwendung von hsadmin-mail ==
== 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.)  
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.)  
Zeile 20: Zeile 21:
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 [[Verwalten der Zonendaten | Zonefile]] zuständigen Mailserver weiterschickt.
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 [[Verwalten der Zonendaten | Zonefile]] zuständigen Mailserver weiterschickt.


== Alle vorhandenen E-Mail-Adressen auflisten ==
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.
 
(FIXME: Die Arten von Subdomains sauber definieren, mit Verweisen auf die entsprechenden, noch zu erstellenden Wiki-Seiten.)
 
== 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 ===


<pre>
<pre>
Zeile 26: Zeile 35:
</pre>
</pre>


Die Datenfelder localpart, subdomain, domain und target mit ":"
===Die Datenfelder localpart, subdomain, domain und target mit ":"
getrennt zeilenweise ausgeben:
getrennt zeilenweise ausgeben===
 
In folgendem Beispiel wird mit der Option '-w domain.name=' die Suche auf eine bestimmte Domain eingeschränkt.
Die Option '-d' führt ein Muster für die Ausgabe an.
 
<pre>
<pre>
hsadmin -c emailaddress.search \
hsadmin -c emailaddress.search \
Zeile 33: Zeile 46:
</pre>
</pre>


== Alle vorhandenen E-Mail-Adressen zu einer Domain auflisten ==
=== Alle vorhandenen E-Mail-Adressen zu einer Domain auflisten ===
 
<pre>
<pre>
hsadmin -c emailaddress.search -w domain.name='example.de' -d  
hsadmin -c emailaddress.search -w domain.name='example.de' -d  
Zeile 39: Zeile 53:
</pre>
</pre>


(alles in einer Zeile)
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


Dann erhälst du eine Liste der eMail Adressen der example.de Domain
wobei {ZAHL} eine eindeutige Kennzahl ('id') für die angezeigte Weiterleitung ist. Der Eintrag kann auch anhand dieser Zahl angesprochen werden (siehe unten).


ZAHL:muster@.example.de:xyz00-test, test@example.de
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.


wobei ZAHL z.b. 4711 ist.
=== Eine E-Mail-Adresse hinzufügen ===
der . nach dem @ ist bei keiner subdomain nur ein Anzeige Unschönheit.


== Eine E-Mail-Adresse hinzufügen ==
<pre>
<pre>
hsadmin --call:emailaddress.add \
hsadmin --call:emailaddress.add \
Zeile 55: Zeile 69:
--set:target='xyz00-test'
--set:target='xyz00-test'
</pre>
</pre>
für x Weiterleitungen: --set:target='xyz00-test, xyz00-test2'


Hierbei habe ich zur Abwechslung die Langform der Optionen verwendet.
Um eine Weiterleitung an mehrere Zieladressen einzurichten, gibt man diese durch Komma getrennt an:
 
<pre>... --set:target='xyz00-test, xyz00-test2' ...</pre>
 
In dem Beispiel oben erscheint die Langform der Optionen. Die Kurzform ist ebenso möglich:


oder
<pre>
<pre>
hsadmin -c emailaddress.add  -s localpart='test' -s domain='example.com'  
hsadmin -c emailaddress.add  \
-s localpart='test' \
-s domain='example.com' \
-s target='xyz00-test, test@example.org'
-s target='xyz00-test, test@example.org'
</pre>
</pre>


(Achtung alles in einer Zeile)
=== Das Ziel einer E-Mail-Adresse ändern: ===


== Das Ziel einer E-Mail-Adresse ändern: ==
<pre>
<pre>
hsadmin -c emailaddress.update -s target='xyz00-test' test@example.de
hsadmin -c emailaddress.update -s target='xyz00-test' test@example.de
</pre>
</pre>


test@example.de -> ist die eMail Adresse
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:
 
<pre>... -s target='xyz00-test, xyz00-neu, info@example.de' ...</pre>
 
Damit werden eingehende Mails an drei Adressen gleichzeitig weitergeleitet.


xyz00-test -> ist das Ziel wohin die Mail gehen sollen.
=== Alle E-Mail-Adressen einer Domain weiterleiten ===


target='xyz00-test, xyz00-neu, info@example.de'
Eine ''Catch-All''-Weiterleitung kann man dadurch einrichten, dass man für Ziel und Quelle eine leere Local-Part angibt:
(Dann geht die Mail an 3 Adressen.)


== Alle E-Mail-Adresse weiterleiten (catch-all): ==
<pre>
<pre>
hsadmin -c emailaddress.add -s localpart='' -s domain='example.de' -s target='@example.org'
hsadmin -c emailaddress.add -s localpart='' -s domain='example.de' -s target='@example.org'
</pre>
</pre>


Hierbei werden alle Mails von example.de an example.org weitergeleitet.
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 ===


== Eine E-Mail-Adresse löschen: ==
<pre>
<pre>
hsadmin -c emailaddress.delete test@example.com
hsadmin -c emailaddress.delete test@example.com
</pre>
</pre>


oder
Die zu löschende Weiterleitung kann kann auch mit ihrer Kennzahl angesprochen werden:
 
<pre>
<pre>
hsadmin -c emailaddress.delete -w id=ZAHL
hsadmin -c emailaddress.delete -w id=[ZAHL]
</pre>
</pre>
(Zahl = z.B. 4711 siehe Ausgabe oben)


wobei [ZAHL] die Kennzahl der Weiterleitung ist, wie sie in der Ausgabe von hsadmin erscheint (siehe Beispiele oben).
=== alle E-Mail-Adressen in der Domain example.com löschen ===


== alle E-Mail-Adressen von example.com löschen: ==
<pre>
<pre>
hsadmin -c emailaddress.delete -w domain.name=example.com
hsadmin -c emailaddress.delete -w domain.name=example.com
</pre>
</pre>


Zu unterscheiden ist, ob eine Subdomain separat aufgeschaltet wurde, dann
Beachte, dass Adressen in einer separat aufgeschaltete Subdomain, wie z.B. ''www.example.com'', von dem obigen Befehl nicht betroffen werden.
wird sie bei der Domain mit angegeben, oder ob sie nicht separat
 
aufgeschaltet wurden, dann muss sie als Subdomain angegeben werden. Für
(FIXME: Folgender Satz ist praktisch ein Kaputter Link. Reparieren oder durch Information ersetzen und an sinvoller Stelle eingliedern.)
E-Mail-Adressen der aufgeschalteten Domains wird die Subdomain nicht
angegeben.


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


== Einige Beispiele ==
== Weitere Beispiele ==


{|class="wikitable"
{|class="wikitable"
Zeile 140: Zeile 166:


== virtusertable-Format ==
== virtusertable-Format ==
Die Datei etc/virtusertable ist nicht mehr Teil der E-Mail-Konfiguration.
Das Zeilenformat der Datei virtusertable ist: 'source <i>whitespace</i> target[, target]', also die weiterzuleitende Email-Adresse gefolgt von Whitespace und komma-separierter Liste von Zieladressen, z.B.:
<pre>
otto@example.org        xyz00-otto
verteiler@example.org    xyz00-otto, susi@example.com
</pre>


=== Export der E-mail-Adressen ins 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:
Will man sich die E-mail-Adressen im Format der virtusertable auflisten lassen, kann folgende Kommandozeile benutzt werden:


<pre>
<pre>
Zeile 153: Zeile 188:
</pre>
</pre>


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.
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.
 
Das virtusertable-Format ist in der Form: 'source <i>whitespace</i> target [,target]', also die Email-Adresse gefolgt von Whitespace und komma-separierter Liste an Zielen, z.B.


<pre>
otto@example.org        xyz00-otto
verteiler@example.org    xyz00-otto, susi@example.com
</pre>
----
----
[[Kategorie:E-Mail]]
[[Kategorie:E-Mail]]
[[Kategorie:hsadmin]]
[[Kategorie:hsadmin]]

Version vom 17. Juni 2009, 08:05 Uhr

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.

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

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.

(FIXME: Die Arten von Subdomains sauber definieren, mit Verweisen auf die entsprechenden, noch zu erstellenden Wiki-Seiten.)

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 localpart, subdomain, domain und target mit ":" getrennt zeilenweise ausgeben===

In folgendem Beispiel wird mit der Option '-w domain.name=' die Suche auf eine bestimmte Domain eingeschränkt. Die Option '-d' führt ein Muster für die Ausgabe an.

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'

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 der Domain example.com löschen

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

Beachte, dass Adressen in einer separat aufgeschaltete Subdomain, wie z.B. www.example.com, von dem obigen Befehl nicht betroffen werden.

(FIXME: Folgender Satz ist praktisch ein Kaputter Link. Reparieren oder durch Information ersetzen und an sinvoller Stelle eingliedern.)

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

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