E-Mail/Manuelle Konfiguration/.courier-Dateien
Diese Seite beschreibt die fortgeschrittene Konfiguration von Mailzugängen mit .courier-Dateien. Die meisten Nutzer werden dies nicht benötigen und können die Anleitung unter E-Mail nutzen.
Mit Hilfe der .courier-Dateien legen Sie fest, welche an Ihre Domains adressierten E-Mails angenommen werden und was mit den eingehenden E-Mails passiert. Die Prozedur ist dabei vergleichbar, ob Sie Ihre Benutzer-Adresse, eine Benutzer-Adresse mit Erweiterung oder eine Adresse unter einer Ihrer Domains festlegen. Das Vorgehen unterscheidet sich nur im Namen der Datei.
Diese Anleitung und alle hierauf verweisenden Anleitungen erfordern, dass die verwendete Domain auf manuelle Konfiguration eingestellt wurde. Sofern Sie die Verwaltung über Webinterface nutzen, können bzw. müssen Sie keine .courier-Dateien erstellen
Bestandsaufnahme und Dateioperationen
Um .courier-Dateien verwalten zu können, brauchen Sie Zugriff auf Ihr Benutzerverzeichnis bzw. die Dateien darin. Dies kann entweder über ein SFTP-Programm oder über einen SSH-Zugang erledigt werden. Typischerweise werden Dateien, die mit einem Punkt beginnen als versteckte Dateien betrachtet. Sofern Sie ein SFTP-Programm benutzen, müssen Sie meist die Anzeige versteckter Dateien erst einschalten.
Sofern Sie den direkten SSH-Zugang benutzen, können Sie mit ls -la .courier* die bestehenden .courier-Dateien anzeigen lassen. Es ist möglich, dass bisher noch gar keine solche Datei existiert.
Wahl der Dateinamen
Benutzer-Adresse
Ihre Benutzer-Adresse, die Ihnen automatisch mit dem Benutzerzugang gehört, wird über die Datei .courier gesteuert.
Erweiterungen
Zudem können über Dateien der Form .courier-erweiterung neue Adressen der Form benutzername-erweiterung@schokokeks.org festgelegt werden.
Zum Beispiel erzeugt beim Benutzer heinz die Datei .courier-privat eine Adresse heinz-privat@schokokeks.org.
Dabei ist auf folgende Punkte besonders zu achten:
- Dateinamen sind immer in Kleinbuchstaben gehalten. Die E-Mail-Adressen können auch mit Großbuchstaben benutzt werden, der Server wandelt diese jedoch immer in Kleinbuchstaben um und sucht Dateien in Kleinbuchstaben.
- Punkte sind in Namen von .courier-Dateien aus Sicherheitsgründen nicht erlaubt. Um Punkte in Adressen zu erlauben, werden diese in Doppelpunkte umgewandelt. Sie müssen also Dateien mit einem Doppelpunkt benennen, wo in der Adresse ein Punkt kommt. (Im obigen Beispiel: .courier-maier:privat für heinz-maier.privat@schokokeks.org)
Exkurs: Wie Domains zu Erweiterungen werden
Wenn Sie verstehen möchten, wie unsere Dateinamens-Konvention entstanden ist und wieso wir diese verfolgen, möchte ich die Lektüre der nachfolgenden Sätze empfehlen.
Wir haben uns bewusst gegen eine rein virtuelle Verwaltung von E-Mail-Adressen entschieden, da wir unseren Benutzern unter anderem ermöglichen wollten, mehrere Adressen in ein Postfach zu dirigieren und beliebige Programme bei E-Mail-Eingang zu starten. Dazu zählt zum Beispiel auch der individuelle Spamfilter.
Wie eingangs erklärt, erlauben wir unseren Benutzern zusätzlich zur Stamm-Adresse benutzername@schokokeks.org beliebige Erweiterungsadressen benutzername-erweiterung@schokokeks.org. Nur diese Adressen können vollwertig vom Benutzer selbst konfiguriert werden und erlauben alles was wir unseren Benutzern ermöglichen möchten.
Daher haben wir die bei uns gehosteten Domains so eingestellt, dass deren E-Mails immer fest einem Benutzer zugewiesen sind und dann von lokal@domain automatisch in die Form benutzername-domain-lokal@schokokeks.org übersetzt werden. Damit kann ein Benutzer völlig frei agieren, benötigt keine besonderen Werkzeuge zur Verwaltung seiner Domain-Adressen und hat alle Möglichkeiten. Dabei ist die Erweiterungsadresse, zu der eine Domain übersetzt wird, technisch frei einstellbar. Sollten Sie also z.B. mehrere Domains auf die selbe Erweiterungsadresse einstellen möchten oder ähnliche Wünsche haben, können wir das gerne einrichten.
Im Umkehrschluss ist damit auch die Adresse heinz@maier.de eines bei uns ansässigen Benutzers heinz völlig identisch zur Adresse heinz-maier.de-heinz@schokokeks.org. Für den Mail-Server gibt es hier keine Unterscheidung mehr, diese Adressen sind technisch gleich.
Eigene Domains
Wenn Sie die beiden vorigen Abschnitte gelesen haben, ist damit auch klar, die die Dateinamen für eigene Domains aufgebaut sein müssen: .courier-domain-lokal.
Dabei ist auf folgende Punkte besonders zu achten:
- Dateinamen sind immer in Kleinbuchstaben gehalten. Die E-Mail-Adressen können auch mit Großbuchstaben benutzt werden, der Server wandelt diese jedoch immer in Kleinbuchstaben um und sucht Dateien in Kleinbuchstaben.
- Punkte sind in Namen von .courier-Dateien aus Sicherheitsgründen nicht erlaubt. Um Punkte in Adressen zu erlauben, werden diese in Doppelpunkte umgewandelt. Sie müssen also Dateien mit einem Doppelpunkt benennen, wo in der Adresse ein Punkt kommt. (Beispiel: .courier-maier:de-heinz)
Catch-All-Adressen
Eine besondere Technik ist der so genannte Catch-All. Das bedeutet, dass beliebig viele Adressen mit einer einzigen .courier-Datei behandelt werden. Bei uns können Catch-All-Adressen auf jeder Bindestrich-Ebene eingerichtet werden. Konkret heißt das, nach dem Schema von Benutzer-Adresse und Erweiterung (siehe oben) kann die Adresse mit Bindestrichen um beliebige weitere Komponenten verlängert werden.
So kann der Benutzer heinz z.B. die Adresse heinz-newsletter-beliebig@schokokeks.org festlegen, mit einem beliebigen Wert für beliebig. Analog dazu natürlich auch unter der eigenen Domain, in dem er die Adresse heinz-maier.de-newsletter-beliebig@schokokeks.org erstellt und damit auch die Adressen newsletter-beliebig@maier.de behandelt werden.
Um einen solchen Catch-All zu erzeugen, muss der Name der .courier-Datei lediglich auf -default enden. So müssen im obigen Beispiel die Dateien .courier-newsletter-default bzw. .courier-maier:de-newsletter-default genannt werden.
Dieser Catch-All hat im Übrigen nicht Vorrang gegenüber noch konkreteren Adressen. Der Catch-All ist so zu sagen die letzte Möglichkeit bevor eine Mail abgewiesen wird.
Wir raten davon ab, einen Catch-All direkt auf einer Domain einzurichten (z.B. beliebig@maier.de). Es wird mittlerweile sehr viel Spam an zufällig erstellte Adressen verschickt. Das Spam-Aufkommen wird sich drastisch erhöhen, wenn Sie dies dennoch einrichten.
Inhalt der Dateien
Genauso wichtig wie der Name der Datei ist deren Inhalt.
Grundsätzlich gilt immer: Die Datei wird von oben nach unten zeilenweise gelesen und verarbeitet. Jede Zeile enthält eine Anweisung oder einen Kommentar, der ignoriert wird.
Je nach dem, welche Operation Sie haben möchten, müssen Sie die Syntax in dieser Datei passend beachten. Natürlich können Zeilen unterschiedlicher Form untereinander in der selben Datei stehen.
Der Mailserver erkennt am allerersten Zeichen einer Zeile, was für eine Angabe folgt. Es ist also wichtig, dass kein Leerzeichen oder ähnliches am Zeilenanfang steht.
Kommentare
Sie dürfen eine oder mehrere Zeilen an beliebiger Stelle als Kommentar / Anmerkung festlegen. Dazu muss die Zeile mit einer Raute (#) beginnen. So können Sie beispielsweise notieren, welche Funktion die jeweils nachfolgende Anweisung hat. Jede Zeile, die mit einer Raute beginnt, ist ein Kommentar und wird ignoriert. Sie können also einzelne Anweisungen außer Kraft setzen, in dem Sie eine Raute davor setzen.
Weiterleitung an eine andere E-Mail-Adresse
Um eingehende E-Mails sofort an eine beliebige andere Adresse weiter zu senden, reicht es aus, diese Adresse in eine ansonsten leere Zeile zu schreiben.
Handelt es sich jedoch um eine externe Mailadresse (also eine nicht bei schokokeks.org gehostete), ergibt sich hieraus unter Umständen ein Problem. Dank der Anti-Spam-Technologie SPF werden Mails von Domains, bei denen ein sogenannter SPF-Record gesetzt ist, nur von den Servern akzeptiert, die dort angegeben sind. Bei einer Weiterleitung ergibt sich aber das Problem, dass der sendende Server nicht mehr der ursprüngliche ist (zu dem die Domain gehört).
Hierfür gibt es eine Technik namens SRS. Um eine Weiterleitung mit SRS an, beispielsweise, test@example.com zu schicken, lautet der entsprechende Eintrag in der .courier-Datei:
|/usr/bin/couriersrs --srsdomain=srs.schokokeks.org test@example.com
Die Angabe der SRS-Domain sollte immer auf srs.schokokeks.org verweisen, test@example.com wird selbstverständlich durch die gewünschte Mailadresse ersetzt.
Siehe auch
- http://www.openspf.org/SRS - SRS-Protokoll
- http://couriersrs.com/ - couriersrs, SRS-Implementierung für den Courier-Mailserver
Speichern in einem Maildir
Die häufigste Anwendung wird das Ablegen eingehender E-Mails in einem Maildir betreffen. Ein Maildir ist ein Postfach, das Sie später per POP3/IMAP abrufen können. Eine eigene Seite beschreibt, wie Sie ein Maildir erstellen können. Das hier benutzte Maildir muss bereits vorhanden sein!
Schreiben Sie den Pfad des Maildir einfach in eine eigene Zeile. Zur Vereinfachung können Sie Ihr Benutzerverzeichnis durch einen Punkt ersetzen, also z.B. kann der Benutzer heinz anstelle von /home/heinz/mailbox/ auch nur ./mailbox/ eintragen. Das liegt daran, dass der Zustell-Prozess immer im Benutzerverzeichnis startet und daher nur eine relative Pfadangabe nötig ist. Es darf aber natürlich auch der vollständige Pfad notiert werden.
Achten Sie allerdings darauf, dass die Zeile mit höchstens einem Punkt beginnt. Sollten dort zwei Punkte stehen, wird das nicht funktionieren. Auch jedes andere Zeichen außer Punkt (für die abgekürzte Variante) und Schrägstrich (für die vollständige Notation) führt zu einem Fehler.
Ganz wichtig dabei ist, dass die Zeile mit einem Schrägstrich (/) endet. Geben Sie den Pfad eines Maildir bitte immer mit einem Schrägstrich am Ende an.
Speichern in einer traditionellen Unix-MBox-Datei
Unser Mailserver erlaubt auch das Speichern in einer traditionellen Unix-MBox-Datei (alle E-Mails in einer Datei). Wir raten jedoch davon ab, dies ohne besonderen Grund zu machen. Unser POP3-/IMAP-Server wird auf dieses Postfach dann nicht zugreifen können!
Die Syntax ist ähnlich zum vorherigen Abschnitt, nur dass der Schrägstrich am Ende weg gelassen werden muss.
Aufrufen eines Programms
Um alle Freiheiten zu nutzen, die dem Benutzer auf schokokeks.org geboten werden, kann man beim Eintreffen von Nachrichten automatisch ein Programm starten lassen. Die meisten Benutzer lassen die Nachrichten so auf Spam bzw. Viren prüfen.
Ein so aufgerufenes Programm hat die Möglichkeit, die zeilenweise Verarbeitung der .courier-Datei zu stoppen. Sollten Sie also z.B. den Spamfilter benutzen, dann wird im Falle einer positiven Beurteilung der Nachricht alles unterhalb des Spamfilter-Aufrufs nicht mehr ausgeführt.
Konkrete Beispiele zur Benutzung von Spam- und Virenfilter haben wir auf einer Extra-Seite zur Einbindung von Spam- und Virenfilter zusammen gestellt.
Ein weiteres Programm, das häufig mit dieser Funktion benutzt wird, ist procmail. Mit diesem ist es möglich, eingehende E-Mails sofort auf beliebige Kriterien zu filtern oder zu modifizieren. Der Aufruf ist einfach, es muss nur
|/usr/bin/procmail
notiert werden, jedoch sollten Sie dies erst verwenden, wenn Sie procmail auch eingerichtet haben. Zur Dokumentation von procmail möchten wir Sie aber an externe Quellen verweisen. Insbesondere das Procmail Documentation Project könnte hier hilfreiche Informationen liefern.
Eine kurze Beispielkonfiguration ist unter E-Mail/Manuelle_Konfiguration/procmail zu finden.
Sie können natürlich auch weitere, eigene Programme ausführen lassen. Zur Dokumentation der vorhandenen Möglichkeiten, möchten wir an dieser Stelle aber auf die Dokumentation des Mail-Servers verweisen: http://www.courier-mta.org/dot-courier.html