Erstellung von Skripten für Autobeantworter

Skripten für Autobeantworter sind Textdateien, aus denen Antwortnachrichten erstellt werden; der Autobeantworter versendet diese Antwortnachrichten, nachdem er ausgelöst wurde. Die Skripten sind einfache ASCII-Textdateien und tragen die Dateiendung "rsp". Wird ein Skript durch einen Autobeantworter ausgeführt, so wird es verarbeitet und nach Makros durchsucht. Die Makros werden durch die Daten aus der eingegangenen Nachricht ersetzt, die den Autobeantworter ausgelöst hat. Zeilen, die mit dem Zeichen "#" beginnen, werden ignoriert und können für Kommentare verwendet werden.

Etwas weiter unten finden Sie einige Beispiel-Skripte, und im MDaemon-Ordner \app\ stehen einige allgemein nutzbare rsp-Vorlagen zur Verfügung.

Makros für Skripte des Autobeantworters

$HEADERS$

Dieses Makro wird durch alle ursprünglichen Kopfzeilen der eingehenden Nachricht ersetzt. Dieses Makro liest alle Kopfzeilen einer eingehenden Nachricht. Der Text direkt vor dem Makro erscheint am Anfang jeder ausgewerteten Zeile.

$HEADER:XX$

Damit wird nur die Kopfzeile "xx" der umgeformten Nachricht hinzugefügt. Ist z.B. in der Originalnachricht "TO: joe@example.com" enthalten, so gibt das Makro $HEADER:TO$ den Text "joe@example.com" aus. Enthält die Originalnachricht "SUBJECT: Dies ist der Betreff" , so ergibt das Makro $HEADER:SUBJECT$ den Text "Dies ist der Betreff".

$BODY$

Dieses Makro gibt den kompletten Nachrichtentext außer den Kopfzeilen und dem Betreff aus. Damit auch sprachspezifische Sonderzeichen wie etwa deutsche Umlaute oder das "ß" erhalten bleiben, liest MDaemon den Nachrichtentext als Binärdaten und erstellt so eine bitweise Kopie des Textes.

$BODY-AS-TEXT$

Dieses Makro gibt, genau wie $BODY$, den gesamten Nachrichtentext aus, jedoch liest MDaemon dabei den Text nicht binär sondern als ASCII-Text. Dies ist u.U. mit manchen Zeichensätzen nicht kompatibel. Der Text vor dieser Variable wird am Anfang jeder Zeile ausgegeben, sodass >>$BODY-AS-TEXT$ jeder Zeile der RFC-2822-Originalnachricht die Zeichen ">>" hinzufügen würde. Der Text kann auch rechts von diesem Makro hinzugefügt werden.

$SENDER$

Dieses Makro ergibt die vollständige Adresse des Absenders aus der Kopfzeile "From:" der eingegangenen Nachricht.

$SENDERMAILBOX$

Dieses Makro gibt den Postfachnamen des Absenders aus. Der Postfachname ist der Teil einer E-Mail-Adresse links vom @-Zeichen.

$SENDERDOMAIN$

Dieses Makro gibt den Domänennamen des Absenders aus. Der Domänenname ist der Teil einer E-Mail-Adresse rechts vom @-Zeichen

$RECIPIENT$

Dieses Makro gibt die vollständige E-Mail-Adresse des Empfängers aus.

$RECIPIENTMAILBOX$

Dieses Makro gibt den Postfachnamen des Empfängers aus. Der Postfachname ist der Teil einer E-Mail-Adresse links vom @-Zeichen.

$RECIPIENTDOMAIN$

Dieses Makro gibt den Domänennamen des Empfängers aus. Der Domänenname ist der Teil einer E-Mail-Adresse rechts vom @-Zeichen.

$SUBJECT$

Dieses Makro ergibt den Inhalt der Kopfzeile "Betreff" ("Subject:").

$MESSAGEID$

Dieses Makro ergibt den Inhalt der Kopfzeile "Message-ID" ("Nachrichten-ID").

$CONTENTTYPE$

Dieses Makro ergibt den Inhalt der Kopfzeile "Content-Type" ("Inhalts-Typ").

$PARTBOUNDARY$

Dieses Makro gibt den Teil-Begrenzer für mehrteilige MIME-Nachrichten aus, der bei mehrteiligen Nachrichten in der Kopfzeile "Content-Type" zu finden ist.

$DATESTAMP$

Dieses Makro gibt eine Zeile mit Datum- und Zeitstempel nach RFC-2822 aus.

$ACTUALTO$

Manche Nachrichten enthalten ein Feld "ActualTo" ("Eigentlich an"), in dem die ursprünglich vom Absender eingegebene Zieladresse zu finden ist, wie sie vor irgendwelchen Umformungen oder Formatänderungen lautete. Dieses Makro fügt diesen Text ein.

$ACTUALFROM$

Manche Nachrichten enthalten ein Feld "ActualFrom" ("Eigentlich von"), in dem die ursprüngliche Absenderadresse zu finden ist, wie sie vor irgendwelchen Umformungen oder Formatänderungen lautete. Dieses Makro fügt diesen Text ein.

$REPLYTO$

Dieses Makro ergibt den Inhalt der Kopfzeile "ReplyTo" ("Antwort an").

$PRODUCTID$

Dieses Makro gibt die Versionsinformation für den Server MDaemon aus.

$AR_START$

Dieses Makro ergibt Datum und Uhrzeit, zu denen ein Autobeantworter aktiviert wird.

$AR_END$

Dieses Makro ergibt Datum und Uhrzeit, zu denen ein Autobeantworter deaktiviert wird.

Makros zum Einfügen und Ersetzen von Kopfzeilen

Die folgenden Makros bestimmen, welche Kopfzeilen in die durch den Autobeantworter erstellten Nachrichten eingefügt werden.

%SetSender%

Bsp.: %SetSender%=mailbox@example.com

Dieses Makro ändert, nur im Rahmen des jeweiligen Autobeantworters, den Absender der Ursprungsnachricht, bevor die Kopfzeilen der Antwortnachricht erstellt werden. Das Makro steuert damit den Inhalt der Empfängerkopfzeile TO der automatischen Antwortnachricht. War der Absender der Ursprungsnachricht beispielsweise "user2@example.com", und führt der Autobeantworter das Makro %SetSender% aus, um ihn in "user1@example.com" zu ändern, dann wird in die Kopfzeile TO der Antwortnachricht "user1@example.com" eingetragen.

%SetRecipient%

Bsp.: %SetRecipient%=mailbox@example.com

Dieses Makro ändert, nur im Rahmen des jeweiligen Autobeantworters, den Empfänger der Ursprungsnachricht, bevor die Kopfzeilen der Antwortnachricht erstellt werden. Das Makro steuert damit den Inhalt der Absenderkopfzeile FROM der automatischen Antwortnachricht. War der Empfänger der Ursprungsnachricht beispielsweise "michael@example.com", und führt der Autobeantworter das Makro %SetRecipient% aus, um ihn in "michael.mason@example.com" zu ändern, dann wird in die Kopfzeile FROM der Antwortnachricht "michael.mason@example.com" eingetragen.

%SetReplyTo%

Bsp.: %SetReplyTo%=mailbox@example.com

Steuert den Inhalt der Kopfzeile ReplyTo der automatisch erstellten Antwortnachricht.

%SetActualTo%

Bsp.: %SetActualTo%=mailbox@example.com

Beeinflusst den "wirklichen Empfänger" der automatisch erstellten Antwortnachricht.

%SetSubject%

Bsp.: %SetSubject%=Neuer Betreff

Ersetzt den Betreff der Ursprungsnachricht durch den hier angegebenen Text.

%SetMessageId%

Bsp.: %SetMessageId%=ID String

Ändert die Nachrichten-ID der automatisch erstellten Antwortnachricht.

%SetPartBoundary%

Bsp.: %SetPartBoundary%=Boundary String

Ändert den Part-Trenner.

%SetContentType%

Bsp.: %SetContentType%=MIME type

Ändert den Inhaltstyp der automatisch erstellten Antwortnachricht in den hier angegebenen Wert.

%SetAttachment%

Bsp.: %SetAttachment%=Datei

Veranlasst MDaemon, die angegebene Datei an die automatisch erstellte Antwortnachricht anzufügen. Es können hierbei nur solche Dateien als Dateianlagen angefügt werden, die im Abschnitt Dateianlagen ausdrücklich aufgeführt sind.

Beispiel-Skripte für Autobeantworter

Ein typisches Skript für Autobeantworter, das mehrere Makros für Autobeantworter nutzt, könnte URLAUB.RSP heißen und folgendermaßen aussehen:

Sehr geehrter $SENDER$,

Ihre Nachricht wegen '$SUBJECT$' kann ich derzeit nicht bearbeiten,

da ich mich im Urlaub befinde.

 

Mit freundlichem Gruß,

$RECIPIENT$

Mit den oben erläuterten zusätzlichen Makros lassen sich auch die Kopfzeilen bestimmen, die der automatisch erzeugten Antwortnachricht vor dem Versand an den Absender $SENDER$ hinzugefügt werden:

Sehr geehrter $SENDER$,

Ihre Nachricht wegen '$SUBJECT$' kann ich derzeit nicht bearbeiten,

da ich mich im Urlaub befinde.

 

$RECIPIENT$

%SetSubject%=RE: $SUBJECT$

%SetAttachment%=c:\fotos\ich_im_urlaub.jpg

Dieses Skript stellt der Betreffzeile den Text "RE: " voran und fügt die angegebene Datei als Dateianlage an.

Die Zeile "%SetSubject%=RE: $SUBJECT$" wird dabei wir folgt behandelt:

1.Der Abschnitt $SUBJECT$ wird ausgewertet und durch den Betreff der Ursprungsnachricht ersetzt. Damit ergibt sich folgender Ausdruck:

%SetSubject%=RE: Text der ursprünglichen Betreffzeile

2.MDaemon ersetzt den Betreff der Ursprungsnachricht, der noch intern gespeichert ist, durch diesen neu erstellten Text. Ab diesem Zeitpunkt wird immer dann der neue Text eingesetzt, wenn im Skript die Variable "$SUBJECT$" erscheint.

Die Platzierung der neuen Makros ist wichtig; sie müssen am Ende des Skripts stehen, um Probleme zu vermeiden. Würde beispielsweise das Makro %SetSubject% vor dem Marko $SUBJECT$ in der dritten Zeile des Skripts erscheinen, wäre der ursprüngliche Betrefftext bereits überschrieben, bevor das Makro $SUBJECT$ ausgewertet wird. Statt den ursprünglichen Betreff würde es dann nur noch den Text ausgeben, der durch das Makro %SetSubject% festgelegt wurde.

Siehe auch: