E-Mail/Autoresponder

Aus schokokeks.org Wiki
Zur Navigation springen Zur Suche springen


Alert.png
Manuelle Konfiguration für fortgeschrittene Nutzer

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.


Manchmal ist es praktisch, wenn auf jede hereinkommende E-Mail an eine bestimmte Adresse eine automatische Antwort gesendet wird.

Zum Beispiel wenn eine Adresse nicht mehr benutzt wird oder wenn man für eine planbare Zeitspanne nicht erreichbar ist (Abwesenheitsnachricht).

Man sollte allerdings aufpassen, dass keine automatischen Antworten an Mailinglisten geschickt werden, da es bei den meisten Listenmitgliedern nicht sonderlich gut ankommt, wenn sie ständig Abwesenheitsnachrichten bekommen.

Eigene Autoresponder einsetzen

Für diesen Zweck gibt es das Programm mailbot. Da die Verwendung des Programms einige Einstellungen erfordert, hat ein Kunde von uns dankenswerter Weise ein Script erstellt, mit dem sich der Einsatz sehr einfach steuern lässt.

Vereinfachte Handhabung für mailbot

Um die Bedienung von mailbot zu vereinfachen, existiert auf den Schokokeks-Servern ein Wrapper-Skript, dem die notwendigen Einstellungen über eine einfache Konfigurationsdatei übergeben werden. Um den Autoresponder zu aktivieren, muss lediglich statt mailbot der Wrapper mit dem Namen der Konfigurationsdatei als Parameter aufgerufen werden. Eine entsprechende ~/.courier-Datei könnte etwa so aussehen:

|/usr/local/bin/keks-user-qmail-ifvirus put ./mailbox/inbox/.virus
|/usr/local/bin/keks-user-qmail-ifspam put ./mailbox/inbox/.spam
|/usr/local/bin/autorespond $HOME/autorespond/config
|/usr/local/bin/preline -f /usr/bin/procmail

In diesem Beispiel wird zuerst ein Viren- und Spamcheck durchgeführt, damit nur "saubere" E-Mails beantwortet werden. Danach wird beispielhaft eine procmail-Zustellung durchgeführt.

Die Konfigurationsdatei kann verschiedene Parameter enthalten, die im Folgenden erklärt werden (eine kommentierte Beispielkonfiguration findet sich hier). Für bestimmte Werte ist ein Standardwert im Wrapper vorhanden, der Anwendung findet wenn der entsprechende Parameter in der Konfigurationsdatei fehlt. So wird etwa die Absenderadresse standardmäßig auf <benutzername>@<servername> gesetzt.

Folgende Parameter können eingestellt werden:

USERNAME="<Ihr Name>"

Über diesen Parameter wird angegeben, welcher Name als Absender der generierten Antwort erscheinen soll.

EMAIL=<Ihre E-Mailadresse>

Gibt die Absenderadresse der generierten Antwort an.

REPLYTO="<Reply-To-Adresse"

Gibt eine optionale Adresse für den Reply-To:-Header an. Wird keine Adresse angegeben, enthält die generierte Antwort keinen solchen Header.

RTUSERNAME="<Ihr Name>"

Wenn ein Reply-To:-Header erstellt wird, wird der hier angegebene Name dafür verwendet.

SUBJECT="Betreff"

Gibt den Betreff für die generierten Antwortmails an. Der String %INSUBJECT wird durch den Betreff der E-Mail, auf das die automatische Antwort erfolgt, ersetzt. Der Standardwert lautet Your message '%INSUBJECT' was received.

MAILBOT="/pfad/zu/mailbot"

Gibt den Pfad des mailbot-Binarys an. Auf den Schokokeks-Servern ist dies schon konfiguriert, der Parameter kann daher ausgelassen werden.

RESPONSETYPE="Antworttyp"

Gibt an, welche Art von Antwort erstellt werden soll. Die Möglichkeiten lauten: reply, replyall, replydsn, forward und forwardatt. Der Standardwert lautet reply.

DSNMAIL="<E-Mailadresse>"

Wenn als Antworttyp replydsn eingestellt ist, die Antwort also in Form einer Delivery Status Notification erfolgt, kann hier die E-Mailadresse eingestellt werden, die die DSN erzeugt. Ist nichts angegeben, wird der Wert des Parameters EMAIL verwendet.

QUOTE="yes/no"

Gibt an, ob bei den reply*-Antworttypen die ursprüngliche Nachricht zitiert werden soll (Standard: no).

SALUT="<Text>"

Wenn das Zitieren aktiviert ist, kann hier ein Text angegeben werden, der das Zitat einleitet. Mailbot kennt verschiedene Variablen, die durch den jeweiligen Text ersetzt werden (etwa %F durch den Namen des Absenders der ursprünglichen Nachricht). Der Standardtext lautet %F writes:.

SALUT="<Texttrenner>"

Wenn als Antworttyp forward eingestellt wird, kann hier die Textzeile, die den weitergeleiteten Nachrichtenteil einleitet geändert werden. Der Standardwert lautet --- Forwarded message ---.

TIMEOUT="<Tage>"

Gibt die Zeit in Tagen an, die mailbot warten soll, bis eine zweite automatische Antwort an die selbe Adresse verschickt wird. Standard: 7 Tage.

TMPDIR="<Verzeichnis>"

Gibt das Verzeichnis für die temporären Dateien des Wrappers an. Dieser Parameter kann weggelassen werden, sodass /tmp verwendet wird.

DATAPATH="/pfad/zum/datenverzeichnis"

Gibt an, in welchem Verzeichnis die Textdatei mit der Antwortnachricht und die Datenbank mit den Adressen, an die bereits eine automatische Antwort versandt wurde, hinterlegt sind. Der Standardwert lautet $HOME/autoresponse/example.

MESSAGEFILE="<Dateiname>"

Enthält den Dateinamen, unter dem der Text für die Nachrichten zu finden ist. Der Standardwert lautet autoresponse.txt.

ENCODING="<Encoding>"

Gibt das Encoding der Datei mit dem Nachrichtentext an. Standardwert: utf-8.

MIMEM="<yes/no>"

Gibt an, ob die Datei mit dem Nachrichtentext eine MIME-Datei ist, also auch MIME-Header enthält. Standard: no.

BOUNCEDBFILE="<Datei>"

Dateiname für die Datenbank mit den bisherigen Empfängern einer Antwort. mailbot erzeugt in $DATAPATH zwei Dateien: $BOUNCEDBFILE.gdbm und $BOUNCEDBFILE.lock.

DEBUG=<yes/no>

Soll der Debug-Modus aktiviert werden? ISt dies auf yes gesetzt, werden keine Antworten verschickt und stattdessen dem User Debuginformationen zugeschickt. Zu diesem Zweck muss auch eine E-Mailadresse konfiguriert werden:

DEBUGMAIL="<E-Mailadresse>"

Das Programm mailbot direkt nutzen

Um dieses zu benutzen, muss man lediglich ein Verzeichnis anlegen, das später die Daten (wie z.B. die Nachricht) enthalten soll. In unserem Beispiel ist das das Verzeichnis /home/bernd/autoresponses/bernd@schokokeks.org. Dort muss eine Text-Datei (In diesem Beispiel message.txt) erstellt werden, die den Text der Antwortmail enthält, die gesendet werden soll. Die Kopfdaten wie Empfänger und Betreff setzt Mailbot selbst auf passende Werte. Eine Nachricht kann etwa so aussehen:

Diese Adresse wird nicht benutzt, bitte nutzen Sie stattdessen
die Adresse bernd@bwurst.org.

Gruß,
Bernd

Um Komplikationen aus dem Weg zu gehen, kann man auf Sonderzeichen und Umlaute verzeichten, dann wird die Nachricht bei jedem Empfänger immer korrekt angezeigt. Sollte man Sonderzeichen verwenden, dann muss man wissen, in welcher Kodierung die Textdatei geschrieben wurde. Entstand diese Datei auf dem Server selbst, so handelt es sich vermutlich um UTF-8-Kodierung. Die Kodierung lässt sich z.B. mit dem Befehl file -i herausfinden:

$ file -i message.txt
message.txt: text/plain; charset=utf-8


So, jetzt ist der Autoresponder bereits zum Teil konfiguriert, er muss nun nurnoch in einer .courier-Datei aufgerufen werden. Dabei muss das Programm mit einigen wichtigen Parametern aufgerufen werden. So z.B. in der Datei ~/.courier:

|/usr/bin/mailbot -A "From: Bernd Wurst <bernd@schokokeks.org>" -c utf-8 -d /home/bernd/autoresponses/bernd@schokokeks.org/bouncedb -t /home/bernd/autoresponses/bernd@schokokeks.org/message.txt

Die " sind nötig, um Leerzeichen un der Absenderadresse benutzen zu können.

Die verwendeten Parameter im Einzelnen:

-A "From: ..."

Der Parameter -A erlaubt das Setzen beliebiger Kopfzeilen einer Nachricht. In diesem Fall wird der Absender korrekt gesetzt.

-c utf-8

Dieser Parameter kontrolliert den Zeichensatz. Er kann weggelassen werden, wenn sich in der oben erstellten Datei keine Sonderzeichen oder Umlaute befinden, dann ist us-ascii die Voreinstellung.

-d ...

Hier wird der Pfad zu einer Datenbank erwartet, in der mailbot verschiedene Daten speichert, z.B. an welche Adresse in den letzten Stunden bereits eine Nachricht versendet wurde. Diese Datei wird ggf. erstellt, lediglich das Verzeichnis muss existieren.

-t .../message.txt

Hier wird die Textdatei mit dem Nachrichtentext erwartet.

Das Programm unterstützt noch weitere Optionen, zum Beispiel kann kontrolliert werden, wie viele Antworten maximal in einem bestimmten Intervall an eine Adresse besendet werden. Die Hilfeseite (man mailbot) erklärt weitere Parameter, hier eine Auswahl:

-D «Tage»

Zeitintervall in Tagen (Standard: 1 Tag) bis weitere Antworten an die selbe Adresse verschickt werden.

-s «Betreff»

Setzt den Betreff auf den genannten Wert (im Zweifel Anführungszeichen benutzen!) anstatt den Original-Betreff zu benutzen.

Löschen oder nicht löschen

Wenn der Aufruf des Autoresponders die einzige Zustellung innerhalb einer .courier-Datei ist, werden eingehende E-Mails nur beantwortet und dann gelöscht. Selbstverständlich kann man aber auch im Sinne einer Abwesenheitsbenachrichtigung die automatische Antwort nur parallel schalten und die E-Mail trotzdem normal zuzustellen. Dazu muss man einfach die weiteren Zeilen der .courier-Datei wie üblich belassen.

Mit dieser Methode kann man natürlich auch einen Viren- oder Spamfilter vor die automatische Antwort setzen, sodass nur "saubere" E-Mails beantwortet werden.