Nachdem ich wieder zu Mutt gewechselt bin, wollte ich jetzt endlich meine Emails auch über Labels verwalten. Leider funktioniert das in Mutt nicht out-of-the-box, aber auch nicht schwer umzusetzen.
Mutt unterstützt seit einiger Zeit das Arbeiten mit dem Header X-Label. Das heißt man kann nach diesem mit ~y filtern und auch über %y diese Labels im Index anzeigen lassen. Das heißt es muß nur noch eine Möglichkeit geschaffen werden diese Labels zu setzen. Es gibt auch einen Patch dazu für Mutt aber ich wollte meinen Mutt nicht patchen und deshalb entschied ich mich zu einer selbst geschriebenen Lösung. Folgendes stellt ein ganz einfaches Skript dar dies umzusetzen.
file=$1 tmpfile=$file.$$ old_labels=`formail -x "X-Label:" < $file | tr -d '\n' | sed 's/^[ \t]*//'` read -e -p "Edit Labels: " -i "$old_labels" new_labels formail -I "X-Label: $new_labels" < $file > $tmpfile mv $tmpfile $file
Hier wird mit dem Programm formail gearbeitet, das mit procmail mitgeliefert wird und das Bearbeiten von Emails unterstützt. Hier werden zunächst alle Labels die in diesem Email gesetzt sind ermittelt und danach von der Kommandozeile gefragt welche Labels hinzugefügt werden sollen. Danach werden diese gesammelten Labels wieder in dieser Nachricht geschrieben.
Jetzt muß man Mutt nur noch einen Keyboard-Shortcut lernen damit man mit diesem Script arbeiten kann.
macro index Y ':set editor=mutt_label_editor<return><edit>:set \ editor="emacsclient -c"<return><sync-mailbox>' "edit X-Label for message"
Diese definiert ein Macro in Mutt, welches man mit Y aufruft. Hier wird dann das Skript muttlabeleditor aufgerufen, das den obigen Inhalt hat. Wichtig zu erwähnen ist hier noch das ich am Schluß auch noch die Mailbox synchronisiere. Das kann zu Problemen führen wenn vor dem Starten dieses Skriptes schon Nachrichten zum löschen markiert wurden. Diese sind danach gelöscht. Wenn man nun folgende Zeile in die .muttrc einträgt sieht man auch die definierten Labels im Index.
set index_format="%4C|%?M?+& ?%2M|%Z|%2N|%D| %-30.30F %s %> %?y?%.30y?|%4c"
Danach kann man schon recht komfortabel mit den Labels arbeiten.