Subject: Mutt - Umstieg mit Hindernissen
From: Boris Kraut <[email-masked]>
To: undisclosed-recipients: ;
Date: Fri, 31 Aug 2007 00:00:00 +0000

Im privaten Umfeld geben sich immer mehr Leute inzwischen mit den von den
eMail-Providern bereitgestellten Webinterfaces zufrieden und auch im
beruflichen Leben ist es haeufig einfacher und bequemer per Webbrowser von
ueberall auf seine eMails Zugriff zu haben, als diese mit einem archaisch
anmutenden, fest installierten Softwarepaket zu verwalten. Doch je mehr Konten
man nutzt und je mehr unterschiedliche Provider einem diese zur Verfuegung
stellen, desto unuebersichtlicher und aergerlicher wird die Sache. Wer will
schon drei unterschiedliche Webseiten abrufen, nur um wirklich alle neuen
Nachrichten lesen zu koennen? Und genau hier haben klassische Mailprogramme
immer noch einen festen Platz.

Egal warum, man sich nun fuer oder gegen eine solche Loesung entscheidet, leider
gibt es inzwischen eine fast ueberschaubare Anzahl von Programmen, die alle
vorgeben, die ultimative Loesung zu sein und meist leider nur das wenigste
halten. Mein persoenlicher Leidensweg fuehrte mich von den beiden
Standardprogrammen der Redmonder Softwareschmiede, Microsoft Outlook Express
und Microsoft Office Outlook, ueber den von der Mozilla Foundation etwas
stiefmuetterlich entwickelten Mailclient Thunderbird hin zu Claws-Mail, der
ehemaligen Experimentier-Version der  Mailsoftware Sylpheed. Obwohl ich mit
Claws-Mail mehr als zufrieden war, wollte ich langfristig mich von einem
grafischen Mail User Agent (MUA) trennen. Nach diversen Tests bin ich immer
wieder an Mutt haengen geblieben, doch leider ist das Einrichten von Mutt alles
andere als leicht. Zwar gibt es haufenweise Anwender die ihre
Konfigurationsdatei hoch geladen haben, doch leider sind diese meist schlecht
dokumentiert, fuer Einsteiger viel zu ueberladen und eventuell auch nicht mehr
fuer die aktuelle Version von Mutt verwendbar. Ich moechte daher meinen Weg zu
einem gut eingerichteten Mutt hier kurz erlaeutern.

Zu aller erst muss man wissen, dass Mutt sich eigentlich nur um das Verwalten
der Nachrichten kuemmert, nicht um das Versenden und Abholen, denn das sollte
der lokale Mailserver erledigen. Wer sich nicht gleich einen ausgewachsenen
Mail-Transfer-Agent installieren, einrichten und warten will, sondern nur
seine Mails von einem der zahlreichen Provider abholen moechte, dem reicht die
Schmalspur-Version: Ein Programm, dass Mails abholt (ich nutze fuer diese
Aufgabe das Programm getmail) und eins, dass die Mails zum Server schickt
(meine Vorliebe gilt hier msmtp). Beide vorgeschlagenen Programme lassen sich
recht einfach einrichten und nutzen, es gibt allerdings auch sehr viele
Alternativen, weshalb ich nicht naeher darauf eingehe und einfach voraussetze,
dass der grundlegende Mailverkehr funktioniert.

Wie von jedem groesseren Projekt, dass seine Quelldateien offen legt, gibt es
auch von Mutt verschiedene Versionen, die teilweise unterschiedliche
Besonderheiten mitbringen. Nachdem die Entwicklung von Mutt eine Zeit lange
still stand, haben sich einige Entwickler zusammengeschlossen und einen
Ableger namens Mutt-NG herausgegeben. Dadurch aufgeschreckt sind inzwischen
auch die Programmierer des Originals wieder aktiver geworden und haben viele
der AEnderungen in die Entwicklerversion von Mutt uebernommen. Da der alte
Koenig also wieder lebt, gibt es fuer einige kein Grund mehr, Mutt-NG 
einzusetzen. Wie es damit weitergeht, ist momentan etwas unklar, doch will der
Initiator bald weitere Patches und Verbesserungen einpflegen, so dass es
abermals eine dritte offizielle Mutt-Version geben koennte. Ich habe mich
fuer die Entwicklerversion des alten Mutts entschieden. Diese bietet viele
Verbesserungen gegenueber der als stabil gekennzeichneten Ausgabe und habe
trotzdem bis heute keine Probleme mit Abstuerzen oder Fehlern gehabt. Am
besten man schaut sich alle Geschmacksrichtungen mal an und bildet sich dann
selbst ein Urteil.

Nun, wie ich oben bereits schrieb, gibt es eine Vielzahl von
Konfigurationsdateien  fuer Mutt, die Anwender ins globale Netz gestellt haben.
Die meisten von euch werden sich die ein oder andere eventuell schon angesehen
haben und sich inzwischen fragen, ob ein Umstieg auf Mutt wirklich das richtig
ist, denn man versteht erstmal gar nichts. Aber keine Angst, so schlimm wird
es nicht. Vergesst diese Konfigurationsdateien, denn sie sind nicht dafuer
gedacht dem Einsteiger ein Rundum-Sorglos-Paket an die Hand zu geben. Sie
richten sich eher an erfahrene Anwender, die eine elegante Loesung fuer kleinere
Ecken und Kanten suchen, die im alltaeglichen betrieb von Mutt irgendwann
auftauchen. Nun gut, wenn man keine vorgefertigte Konfigurationsdatei nutzen
sollte, dann muss man sich eben selbst eine machen. Dabei setzt man sich nicht
an einen Editor und schreibt diese von A bis Z, sondern schaut einfach, was
einem beim Benutzen von Mutt stoert, schlaegt nach, welche Variable das
Verhalten aendern koennte und probiert diese dann aus. Gott sei Dank besitzt
Mutt so genannte sane defaults, also voreingestellte Werte,  die schon mal
eine vernuenftige Basis schaffen.

Startet man Mutt kann man ohne laestige Konfiguration schon ganz vernuenftig
damit arbeiten. Standardmaessig wird die System-Mailbox aus $MAIL verwendet.
Dies Auswahl der Nachrichten kann ueber die Pfeiltasten erfolgen, eine neue
Mail erstellt man mit der Taste m und mit r leitet man eine Antwort ein. Um
andere einen anderen Mailordner zu oeffnen drueckt man c. Mit diesen wenigen
Tasten kann man teilweise schon recht gut den taeglichen Mailverkehr
bewaeltigen. Hat man sich ein wenig eingelebt fallen einem sicher schon die
ersten Sachen auf, die man gerne aendern moechte. In meinem Fall wollte ich
meine bisherigen Mailordner die im (n)MH-Format vorliegen nicht nur
importieren, sondern die bestehenden Strukturen weiter nutzen, woraus sich
folgende ersten Eintraege in meiner .muttrc ergaben:

> reset all
> set folder=~/mail
> set spoolfile=$MAIL
> mailboxes +received +draft +queue +sent +trash
> set mbox_type=MH
> set mbox=+received
> set record=+sent
> set postponed=+drafts
> set postpone=ask-yes

Zuerst setze ich also alle Einstellungen auf die Grundwerte zurueck und
bestimmen dann einen Platz im Dateisystem, an dem Mutt nach neuen Mailordnern
suchen soll und gegebenenfalls diese erstellen soll. Sobald man folder gesetzt
hat, kann man sich das Ausschreiben sparen: Die Platzhalter + und = in einem
Verzeichnisnamen werden durch den hier festgelegten Pfad ersetzt. In Zeile 3
sagen wir eigentlich unnoetiger Weise, dass er als Standardmailbox die des
Systems nutzen soll. In der naechsten Zeile geben wir an, welche Mailordner wir
noch nutzen moechten. Hier wird -  wie oben bereits geschrieben - das
Pluszeichen durch die Pfadangabe aus folder ersetzt. In Zeile 5 legen wir
fest, dass Mutt im zweifelsfall von einer MH-Mailbox ausgehen soll. Mutt
erkennt den Mailbox-Typ eigentlich automatisch, so dass die Einstellung
hauptsaechlich fuer solche Mailboxen gilt, die Mutt selbst anlegt. Mit der
Einstellung mbox legen wir nicht fest, was die Standardmailbox sein soll, denn
das haben wir ja bereits mit spoolfile erledigt. Viel mehr legt diese Variable
fest, wohin frisch eingegangene eMails verschoben werden, wenn man sie gelesen
hat. Standardmaessig haelt Mutt in spoolfile also nur wirklich neue Mails vor.
Die beiden naechsten Zeilen geben entsprechend den Speicherort fuer eMails an
die verschickt worden sind beziehungsweise die man zu schreiben angefangen,
aber nicht abgeschickt hat. Der neunte Eintrag legt dabei noch das Verhalten
fest, ob angefangene eMails automatisch als Entwurf gespeichert werden sollen.
Hier habe ich mich dafuer entschieden, dass Mutt mich fragen soll, wobei die
Standardauswahl auf ja steht, sodass ein bestaetigen mit der Eingabetaste
ausreicht, um den Entwurf zu sichern.

Als naechstes moechte man eventuell Mutt etwas freundlicher und uebersichtlicher
gestalten, indem man andere Farben verwendet. Wenn das Terminal Farben
unterstuetzt, so sollte man mit Eintraegen der Art color BEREICH FARBE1 FARBE2
[REGEX] in der Konfigurationsdatei die jeweiligen Stellen einfaerben koennen. Am
einfachsten ist es, wenn man die Farbdefinitionen aus einer muttrc aus dem
Internet kopiert, von der man von einem Screenshot weiss, wie sie aussieht.
Diese kann man dann seinen eigenen Beduerfnissen anpassen.

Weitere fuer viele Nutzer sehr dringend benoetigten Einstellungen kann man gut
dokumentiert beim CCC Stuttgart [1] finden. Hat man diese grobe Konfiguration
erledigt, ist Mutt eigentlich schon mit allem noetigen versorgt und nichts
steht einem unbeschwerten eMail-Vergnuegen im Wege. Wer jetzt noch
Kleinigkeiten aendern will, dem empfehle ich die schon erwaehnten viele
Konfigurationsdateien im Internet - beispielsweise [2] und [3] - durch
zuarbeiten und sich die gewuenschten AEnderungen raus zuziehen. Als
Nachschlagewerk reicht meist das Mutt-Handbuch bzw. das Manual fuer die
Konfigurationsdatei muttrc. Sie dokumentiert alle Variablen und Befehle in ein
paar gut verstaendlichen Saetzen. Solange man sich daran haelt, nur das in seine
Einstellungen zu uebernehmen, von dem man weiss, was es aendert und auch dass es
geaendert werden soll, kann man nichts falsch machen und die
Konfigurationsdatei bleibt klein und uebersichtlich. Im Zweifelsfall gilt: Was
in den Standard-Werten nicht stoert, muss auch nicht geaendert werden.

Was Mutt so speziell Macht, sind seine so genannten Haken (bzw. hooks) und
Makros. Damit lassen sich Ablaeufe automatisieren, das Menue anpassen und vom
Kontext abhaengige Kurzwahltasten definieren. Da ich selbst noch nicht all
zulange Mutt nutze, habe ich damit leider sehr wenig Erfahrung, so dass ich
nur auf die allgemeine Syntax eingehen kann. Bei den hooks gibt es
verschiedene Sorten, die sich jeweils in ein bestimmtes Ereignis einhaken
und sobald dieses ausgeloest wird bestimmte Befehle ausfuehren. So kann man mit
den folgenden beiden Zeilen beispielsweise seine Signatur dem jeweiligen
Ordner anpassen:

> folder-hook geschaeft set signature=~/.geschaeftlich
> folder-hook privat set signature=~/.privat

Neben dem folder-hook gibt es natuerlich noch weitere Ereignisse, so zum
Beispiel den send-hook, den save-hook und einige mehr. Fuer eine ausfuehrliche
Beschreibung sollte man sich die genannten Dokumentationen genauer durchlesen.

Die Makros sind wie in anderen Programmen auch nuetzliche Helferlein zum
vereinfachen von langwierigen Aufgaben. Sie koennen in Mutt fuer jeden Bereich
einzeln definiert werden, so dass hier in unserem Beispiel die Taste G im
Bereich pager und index zum Abholen der Mails mit fetchtmail genutzt werden
kann:

> # These run fetchmail (or wake up the daemon)
> macro pager   G     "!fetchmail\r"
> macro index   G     "!fetchmail\r"

Der letzte Punkt, den ich ansprechen will, ist die Integration von GnuPG in
Mutt. Hierzu gibt es bereits sehr gute Anleitungen - unter anderem bei [5]
oder [7] zu finden -  im Internet, so dass ich nur kurz auf ein paar kleine
Fallstricke eingehen werde. Wenn man wieder der Devise folgt, nur das zu
aendern, was einen stoert, sollten die voreingestellten Werte schon zum Grossteil
ausreichen. Am problematischsten sind Optionen, die in vielen Beispielen noch
verwendet werden, aber in den aktuellen Versionen von Mutt gestrichen wurden.
Besonders die Option pgp_encryptself wird schmerzlichst vermisst. Mit ihr
konnte man ausgehende Nachrichten automatisch auch mit seinem eigenen
Schluessel kodieren, sodass man diese auch selbst wieder entschluesseln konnte,
wenn man beispielsweise Kopien seiner ausgehenden Mails auf dem eigenen
Rechner speichert. In neueren Version editiert man einfach die
Verschluesselungsbefehle selbst, um diese Wirkung zu erzielen. Was genau zu
aendern ist, erklaert [6] sehr gut.

Wer weitere Fragen hat, der findet auf zahlreichen Webseiten - hier sei die
Seite von Roland Rosenfeld [4] lobenswert erwaehnt - und in Mailinglisten sowie
IRC-Kanaelen jede Menge Anlaufstellen zum Informationsaustausch. Ich hoffe,
dass ich mit diesem kleinen Artikel einigen die Angst vor Mutt nehmen konnte
und dass der ein oder andere hier seinen zukuenftigen Traum-MUA gefunden hat.

[1] http://www.cccs.de/wiki/bin/view/Main/MailMitMutt
[2] http://www4.autistici.org/0xFE/codes/html/muttrc.html
[3] http://linuxbrit.co.uk/downloads/dot.muttrc
[4] http://www.spinnaker.de/mutt/
[5] http://en.tldp.org/HOWTO/Mutt-GnuPG-PGP-HOWTO.html
[6] http://www.wlug.org.nz/MuttGPGEncryptToSelf
[7] http://www.infodrom.org/~joey/Writing/freeX/mutt-gpg/