Mailtodo / Wiedervorlage

thumb_todomailDer Eingangsmailordner läuft über? Die INBOX wird unübersichtlich? Man hat dort einige E-Mails liegen, die man heute gar nicht benötigt, die man aber trotzdem nicht aus den Augen verlieren möchte? Man möchte eine E-Mail an einem bestimmten Termin wiedersehen – bis dahin aber nicht?

Mailserver und die meisten Mailprogramme bieten keine Wiedervorlagefunktion für E-Mails. Eine Aufgabenliste („To-Do-Liste“) ist in keinem mir bekannten E-Mailprogramm enthalten, wenn überhaupt ist das Sache eines Kalenderprogrammes. Für mich ist aber das E-Mailprogramm der Nabel der Welt, daher ist es sinnvoll, wenn solche Sachen auch dort zu regeln sind.

Die Lösung

Mein hier vorgestelltes Programm kann To-Dos mit einstellbar vielen Prioritäten verwalten. Eine Wiedervorlagefunktion ist ebenfalls vorhanden. Die Schnittstelle ist das E-Mailprogramm, vorausgesetzt wird die E-Mailverwaltung auf einem IMAP-Server.

thumb_todomail Das Konzept sieht eine einzige E-Mail vor, die automatisiert in der INBOX (= Eingangsordner) angelegt wird. Diese E-Mail enthält eine Zusammenfassung der To-Do-Einträge sowie eine zahlenmäßige Vorschau der Wiedervorlagen. Diese E-Mail wird automatisch neu angelegt, wenn sie gelöscht wurde oder wenn sich an den Einträgen etwas geändert hat. Sie wird mit der Priorität 1 angelegt (IMAP Label1), so dass sie von den meisten E-Mailprogrammen hervorgehoben angezeigt wird.

DieSteuerung des Inhaltes dieser Mail geschieht über eine Reihe von Mailordnern. Zum einen gibt es eine Anzahl von „To-Do“-Ordnern, die nach Prioritäten geordnet sind. Zum anderen eine Reihe von Ordnern, die nach Datum benannt sind (bspw. „2006-12-14_Mi“) sowie ein paar Ordner wie z.B. „in_12_mon“. Die Ordner werden vom Programm selbst verwaltet, brauchen also weder angelegt noch gelöscht zu werden.

Eine E-Mail in der INBOX, die man mit Priorität 2 weiterbehandeln möchte (aber erst mal aus dem Blickfeld haben möchte), verschiebt man per E-Mailprogramm einfach in den Unterordner ToDos/Prio_02. Sie taucht dann wie in der oben abgebildeten Mail als Zeile auf. Gelistet wird Betreff, Absender und Datum der Mail.

Für die Dinge, die nicht per E-Mail kommen, sondern z.B. als gelber Zettel am Monitor kleben, kann man sich selbst eine E-Mail schicken und diese dann in den Ordner zur passenden Priorität verschieben.

thumb_ordnerMöchte man eine E-Mail erst zu einem bestimmten Datum wiedersehen, so verschiebt man sie in den zugehörigen Ordner. Das Programm legt für eine konfigurierbare Zeit im voraus diese Ordner selbst an.

Fortan ist diese Mail auf einen Eintrag in der Zusammenfassungs-E-Mail reduziert. Ist das Datum zu dem betreffenden Ordner erreicht, werden alle E-Mails, die in diesem Ordner liegen, in die INBOX (Eingangsordner) verschoben und der Ordner anschliessend gelöscht.

Unterhalb des automatisch angelegten Ordners „Wiedervorlage“ werden alle Ordner ebenfalls automatisch angelegt. Die Anzahl der Tage, für die das im voraus passieren soll, ist konfigurierbar, ebenso wie die Tatsache, ob die Wochenenden dort auftauchen sollen.

Anleitung

  • E-Mail mit Priorität 3 (Beispiel) in die ToDo-Liste einfügen:
    • E-Mail in den E-Mailordner _ToDos.Prio_03 verschieben. In der nächsten erzeugten TODO-E-Mail in der INBOX (Eingangsordner) wird Betreff, Datum und Absender der dorthin verschobenen E-Mail als Prio 3 genannt.
  • Aufgabe ist erledigt, E-Mail soll aus Prio 3 (Beispiel) wieder verschwinden
    • E-Mail in E-Mailordner _ToDos.Prio_03 löschen oder in anderen Ordner verschieben.
  • E-Mail auf WIedervorlage zum 5.3.2008 legen (hier sei das ein Datum innerhalb der nächsten 14 Tage)
    • E-Mail in den Ordner mit dem Namen _ToDos.Wiedervorlage.2008-03-05_Mi verschieben. Sie wird automatisch an jenem Tag in die INBOX (Eingangsordner) verschoben.
  • E-Mail soll nach einem halben Jahr wieder auftauchen
    • E-Mail in den Ordner _ToDos.Wiedervorlage.in_06_mon verschieben. Das Programm speichert das Datum (heute+1/2 Jahr) in der E-Mail und läßt sie dort liegen, bis das passende Datum nur noch 14 Tage entfernt ist. Zu diesem Zeitpunkt wird die E-Mail automatisch in den Ordner _ToDos.Wiedervorlage.(dieses_Datum) verschoben. Somit wird sie an dem betreffenden Tag in die INBOX (Eingangsordner) verschoben werden.

Anforderungen

Der Rechner, auf dem das Programm installiert ist, muß eine Verbindung zum zugehörigen IMAP-E-Mailserver aufbauen können. Natürlich kann das Programm auch auf dem E-Mailserver selbst laufen. Einige Perlmodule müssen installiert sein, die meisten gehören bereits zur Ausstattung der gängigen Linuxdistributionen. Ggf installiert man mit cpan modulname. Für die Liste der benötigten Module siehe im Programmkopf, die Zeilen beginnend mit use laden die Module.

Das Programm muß regelmäßig laufen, am besten steuert man dies auf einem Unixrechner mit einem cronjob. Empfehlenswert ist ein Intervall von 10 Minuten, empfehlenswert ist außerdem, den Job in Zeiten, in denen man garantiert nicht am PC sitzt, nicht laufen zu lassen.

Installation

  • Es empfiehlt sich ein Backup der Mails auf dem Mailserver. Aber das hat man ja sowieso, gelle?
  • Erstellen eines Verzeichnisses, in das das Programm und die html-Headerdatei kopiert werden.
  • Anpassen der Konfigurationsvariablen im Kopf des Programmes
  • Ggf Nachinstallieren der benötigten Perlmodule
  • Erstellen des Mailordners, der im Programm als $parentfolder bezeichnet wird. Default ist INBOX._ToDos. Nur der Ordner _ToDos muß per E-Mailprogramm manuell unterhalb des Eingangsordners (der auf dem Server INBOX heißt) erstellt werden. Man erstellt im E-Mailprogramm also einfach den Ordner „_ToDos“ und konfiguriert dazu passend im Perlprogramm „INBOX._ToDos“.
  • Einmaliges Starten des Programmes. Es werden die benötigten weiteren Unterordner angelegt. Hat das geklappt, kann der cronjob erstellt werden. Das Programm legt in seinem Verzeichnis eine Datei namens storedvars.hash an, in der ein paar Variablen gespeichert werden. Das Verzeichnis muß daher beschreibbar sein.
  • Im Mailprogramm sollte eingestellt werden, daß alle Mailordner (nicht nur die subscribierten) angezeigt werden.
    In Thunderbird ifindet sich das in Konten, Server-Einstellungen, Erweitert, „Nur abonnierte Ordner anzeigen“: Haken entfernen.
  • Fertig.

FAQ

  • Beim Programmstart erscheint eine Fehlermeldung „… Message contains bare newlines“.
    • Mögliche Lösung:
      Der E-Mailserver versteht die sogenannten Use-defined-flags nicht. Dies wird im Programm verwendet, damit die ToDo-E-Mail als Wichtig erscheint. Abhilfe: Im Programm nach der Zeile mit $Label1 suchen und daraus diese Zeichen entfernen: , ‚$Label1‘
  • Ein E-Mail wurde in den Ordner _ToDos.Wiedervorlage.in_03_mon verschoben. Am folgenden Tag wurde sie manuell von dort in den Ordner _ToDos.Wiedervorlage.in_06_mon verschoben. Die E-Mail wurde vom Programm aber schon nach 3 Monaten wieder in die INBOX (Eingangsordner) gelegt. Wieso nicht nach 6 Monaten?
    • Das Programm speichert in den Ordnern in_x_mon das Datum einer Wiedervorlage in der E-Mail selbst (im Headerfeld X-mailtodo-DUE). Dieser Eintrag wird gelöscht, wenn die E-Mail vom Programm in die INBOX (Eingangsordner) verschoben wird. Wird die E-Mail allerdings manuell verschoben, verbleibt der Eintrag in der E-Mail. Dieser Eintrag wird nur von diesem Programm verwendet (und verwirrt es in diesem Fall), beeinflußt andere Programme aber nicht.

Historie

  • 1.5, Feb 08: Monateordner eingeführt, Mimedekodierung verbessert, automatisches Subscribe der neuen Ordner, ToDo-Mail jetzt in jedem Fall täglich
  • 1.3, 01/07: URLs im Subject von ToDo-Mails werden in der Zusammenfassung als Links dargestellt. Mailadressen werden als Link dargestellt. Datum um TZ-Korrektur gekürzt.
  • 1.2, 12/06: Bugfixes, Kosmetik
  • 1.1, 12/06: Mimedecodierung von Subject und From eingebaut
  • 1.0, 12/06: Erste Version des Programmes veröffentlicht.

Danke!

  • Ich danke Stephan Isringhausen ( isy at bgfa dot ruhr-uni-bochum dot de ) für seine vielen Anregungen zu diesem Programm! Bei ihm wird das Programm übrigens in einer Multiuser-Umgebung eingesetzt. Die Benutzer melden sich dazu über ein PHP-Script an und mailtodo.pl wird über einen Wrapper aufgerufen, der sich die Accounts aus der von dem PHP-Script gefüllten Datenbank holt. Nähere Infos direkt bei Stephan.

Download

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung – Nicht-kommerziell – Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz.

Die Stellen im Programm, an denen mein Name steht, dürfen nicht verändert werden. Selbstverständlich übernehme ich keine Haftung jeglicher Art für irgendwelche Schäden, die direkt oder indirekt durch die Nutzung dieses Programmes entstehen könnten. Fehlerberichte und Anregungen zur Weiterentwicklung sind jederzeit willkommen. Ich freue mich auch über eine Benachrichtigungsmail, wenn das Programm irgendwo eingesetzt wird.