Abwesenheitsbenachrichtigung zu Weihnachten mit Sieve

Wie du passend zum Weihnachtsurlaub eine Abwesenheitsbenachrichtigung mit Sieve einrichtest

Für viele von uns beginnt in den nächsten Tagen der wohlverdiente Weihnachtsurlaub - und damit auch die Zeit der allseits beliebten Abwesenheitsbenachrichtigungen. Über Sinn und Unsinn mag man sich streiten, im Folgenden zeige ich dir jedenfalls, wie es geht. ;-)

Es gibt zahlreiche Möglichkeiten, Abwesenheitsbenachrichtigungen zu versenden. Ich filtere meine Mails serverseitig mit der Dovecot Sieve-Implementation (siehe auch meinen Artikel aus dem Jahr 2011 zu demselben Thema), die über ein vacation-Plugin verfügt. Im Gegensatz zu anderen Lösungen erfolgt die Abarbeitung vollständig am Server und Sieve stellt so gut es geht sicher, dass es zu keinem Ping Pong kommt, bei dem sich die Server gegenseitig pausenlos Benachrichtigungen schicken. Von Client-basierten Lösungen oder selbstgebastelten Skripts rate ich dringend ab!

Einrichtung

Das grundsätzliche Funktionieren der Sieve-Implementation setze ich hier einmal voraus. Je nach System hast du entweder direkten Zugriff auf deine Sieve-Konfigurationsdatei, beispielsweise unter ~/.dovecot.sieve, oder aber über ein Webinterface deines Providers. Zuallererst muss das vacation-Plugin geladen werden. Dazu fügst du ganz am Anfang der Konfigurationsdatei die Direktive

require ["vacation"];

ein. Gibt es schon eine require-Zeile, so kannst du diese einfach erweitern, beispielsweise mit

require ["fileinto", "vacation", "imap4flags"];

Abwesenheitsregel

Die eigentliche Abwesenheitsregel nimmst du am besten am Ende der Sieve-Konfigurationsdatei vor, wenn alle anderen Filterregeln wie beispielsweise das Sortieren von Mailinglisten und Benachrichtigungen abgeschlossen ist. Ich nutze dazu immer die stop-Direktive, damit bekannte Filterregeln gar nicht erst zu einer Abwesenheitsbenachrichtigung führen. Du leitest die Abwesenheitsbenachrichtigung mittels der Zeile

vacation

ein. Sodann legst du den Absender der Benachrichtigungsmails fest, beispielsweise mit

:from "Florian Effenberger <florian@meinedomain.test>"

Sinnvoll ist auch, die Zahl der versandten Benachrichtigungen zu limiteren. Zum einen nervst du dann die Absender nicht mit der ständig gleichen Nachricht, zum anderen verhinderst du damit den oben genannten Ping-Pong-Effekt. Eine Benachrichtigung pro Woche und Absender (sofern eine neue Mail von diesem eingeht, versteht sich) sollte genügen:

:days 7

Ebenso solltest du sicherstellen, dass Benachrichtigungen nur dann versandt werden, wenn die Mail direkt an dich im An- oder Cc-Feld addressiert ist, beispielsweise mit

:addresses ["florian@meinedomain.test"]

Nutzt du mehrere Adressen, so lautet die Syntax

:addresses ["florian@meinedomain.test", "florian@anderedomain.test"]

Du kannst zudem den Betreff der Abwesenheitsbenachrichtigung setzen. Standardmäßig lautet dieser “Auto: ursprünglicher Betreff”. Das “Auto:” kennzeichnet die automatische Antwort und kann ebenfalls dabei helfen, den Ping-Pong-Effekt zu vermeiden, zudem hilft das Behalten des ursprünglichen Betreffs beim korrekten Threading im Mailprogramm. Alternativ setzt du einen festen Betreff mit

:subject "Out of the office/Abwesenheitsbenachrichtigung"

Im Anschluss folgt der eigentliche Text der Abwesenheitsbenachrichtigung, wobei du Zeilenumbrüche einfach einarbeitest:

"I am out of the office until including January 6, 2017 with only intermittent e-mail access.
Your e-mail will NOT be forwarded.
For urgent matters, please call the following phone number: ...

Ich bin bis einschließlich 6. Januar 2017 nicht im Büro und lese nur sporadisch E-Mails.
Ihre Nachricht wird NICHT weitergeleitet.
In dringenden Angelegenheiten rufen Sie bitte folgende Telefonnummer an: ...

--
Firmensignatur";

Das Ganze im Blick

Hier nochmal der komplette vacation-Block:

vacation
:from "Florian Effenberger <florian@meinedomain.test>"
:days 7
:addresses ["florian@meinedomain.test"]
"I am out of the office until including January 6, 2017 with only intermittent e-mail access.
Your e-mail will NOT be forwarded.
For urgent matters, please call the following phone number: ...

Ich bin bis einschließlich 6. Januar 2017 nicht im Büro und lese nur sporadisch E-Mails.
Ihre Nachricht wird NICHT weitergeleitet.
In dringenden Angelegenheiten rufen Sie bitte folgende Telefonnummer an: ...

--
Firmensignatur";

Testlauf

Speichere nun deine Konfigurationsdatei ab und schicke dir selbst eine E-Mail von einem anderen Konto. Kurze Zeit später solltest du eine Abwesenheitsbenachrichtigung in deinem Postfach haben. Eine zweite Mail sollte hingegen keine erneute Benachrichtigung auslösen. Klappt das nicht, dann prüfe die Sieve-Logdatei, die sich beispielsweise unter ~/.dovecot.sieve.log befindet. Ist deine Sieve-Konfiguration fehlerhaft, dann funktionieren die anderen Filterregeln auch nicht mehr - behebe das Problem daher lieber schnell, bevor dein Postfach überläuft. ;-)

Abschließendes

Ich bin beim Thema E-Mail im Moment leider nicht mehr so ganz up-to-date. Oben stehende Anleitung funktioniert für mich wunderbar, über Rückmeldungen und Verbesserungsvorschläge freue ich mich aber jederzeit!

In diesem Sinne: Schönen Urlaub!