ubuntuusers.de

ubuntuusers.deWikiMutt

Mutt

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Wiki/Icons/terminal.png Das Programm Mutt {en} ist ein textbasierter E-Mail-Client, der abgesehen von einer graphischen Oberfläche keine funktionellen Wünsche offen lässt und zudem höchst konfigurierbar ist. Nicht umsonst lautet das Motto des Entwicklers "All mail clients suck. This one just sucks less." Damit beginnen aber auch schon die Hürden dieses Programms. Die nahezu grenzenlose Fülle an Konfigurationsmöglichkeiten macht den Einstieg sehr schwer und lässt Anwender, die Mutt einfach mal anschauen wollen, schnell den Mut verlieren. Dieser Artikel soll beim Einstieg helfen und erläutert im Folgenden eine minimale Konfiguration, mit der man Mutt erst einmal dazu bewegt, die E-Mails zweier IMAP-Konten zu verwalten und Mails zu verschicken. Diese Konfiguration kann als Grundlage dienen, sich in die Tiefen der Mutt-Möglichkeiten zu stürzen.

./Bildschirmfoto.png

Installation

Mutt selbst kann keine Mails verschicken, sondern kann diese Aufgabe nur an Programme wie msmtp übertragen. Zum Empfangen und Filtern kann Mutt Programme wie Fetchmail und Procmail benutzen, die viele Anpassungsmöglichkeiten bieten, aber für den normalen Gebrauch von IMAP reichen Mutts eigene Fähigkeiten aus. Für die hier vorgestellte Konfiguration müssen also folgende Pakete installiert [1] werden:

  • mutt

  • msmtp

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install mutt msmtp 

sudo aptitude install mutt msmtp 

Konfiguration

msmtp

Das Programm msmtp ermöglicht es, E-Mails über einen entfernten SMTP-Server, also z.B. den des E-Mail-Anbieters, zu verschicken. Konfiguriert wird es mit der Datei .msmtprc im Home-Ordner. Für unser Beispiel fügt man das folgende mit einem Texteditor [3] in diese Datei ein bzw. erstellt diese gegebenenfalls. login und passwort müssen selbstverständlich überall angepasst werden.

#Die folgenden Einstellungen gelten für alle Accounts:
defaults
tls on
tls_starttls on
tls_certcheck off
auth on
#auskommentieren, wenn gewünscht:
#logfile ~/.msmtp.log

#Diese Einstellungen gelten für das Konto bei Googlemail:
account Google
host smtp.googlemail.com
from login@googlemail.com
user login@googlemail.com
port 587
password passwort

#Das sind die Einstellungen für das Konto bei Web.de:
account Webde
host smtp.web.de
from login@web.de
user login@web.de
port 587
password passwort

#Das Web.de-Konto soll das Standard-Konto werden:
account default: Webde

Die Passwörter stehen im Klartext in der Datei, weswegen man mit folgendem Befehl die Zugriffsrechte auf die Datei auf den Benutzer beschränken sollte. Man kann die Passwörter auch weglassen, dann wird jedes Mal beim Versenden danach gefragt.

chmod 600 .msmtprc 

Wenn man möchte, kann man das Versenden einer E-Mail schon mal mit folgendem Befehl ausprobieren:

msmtp -a Google empfänger@adresse.de < e-mail.txt 

Mutt

Mutt wird über die Datei .muttrc gesteuert, welche im Home-Verzeichnis liegt. Es bietet sich aber an, die Konfiguration auf mehrere Dateien aufzuteilen, wobei die einzelnen Dateien innerhalb von .muttrc mittels source pfad/zur/datei aufgerufen werden können. In unserem Fall haben wir die drei folgenden Konfigurationsdateien:

~/.muttrc

#Damit bringen wir Mutt unsere Login-Daten für die jeweiligen Accounts bei
account-hook login@imap.web.de 'set imap_user=login imap_pass=passwort'
account-hook login@imap.googlemail.com 'set imap_user=login imap_pass=passwort'

#Wenn man die Mailbox wechselt, sollen die Server-Daten aktualisiert werden
folder-hook login@imap.web.de 'source ~/.mutt/webde'
folder-hook login@imap.googlemail.com 'source ~/.mutt/google'

#optional, damit kann man in Mutt <Escape> 1 bzw. 2 drücken, um zwischen den Mailboxen zu wechseln
macro index <esc>1 "<change-folder>imap://login@imap.web.de<enter>"
macro index <esc>2 "<change-folder>imaps://login@imap.googlemail.com<enter>"
macro index t "c=<tab><tab><tab>"            #drücke t, um in den Ordnern des Postfaches zu navigieren

#legt fest, welche Mailboxen zu Anfang bekannt sind und beim Start abgerufen werden sollen
mailboxes imap://login@imap.web.de           #sollte mutt nur langsam funktionieren, kannes eventuell hieran liegen
mailboxes imaps://login@imap.googlemail.com/ #siehe auch http://blog.mafr.de/2012/09/09/mutt-too-many-errors/

#Beim Start soll das Web.de-Konto geöffnet sein
source ~/.mutt/webde

set sendmail="/usr/bin/msmtp"               #Pfad zu dem Programm, das die Mails verschicken soll
set envelope_from=yes                       #übergibt msmtp automatisch den richtigen Absender
set edit_hdrs                               #Empfänger u.a. auch im Editor bearbeiten
set signature ="~/.mutt/signatur"           #Datei, die den Text der Signatur enthält
set attribution="%f schrieb am %d:"         #Zitatkennzeichnung in unserer Muttersprache :)

set sort=threads                            #E-Mails werden nach Gesprächsverlauf und nach Datum sortiert
set sort_aux=date-sent
#set sort=date                              #würde alternativ zuerst nach Datum sortieren

unset allow_8bit                            #u.U. verbesserte Darstellung von Umlauten
set date_format="%a, %d. %b %H:%M"          #gibt an, wie das Datum formatiert wird
set index_format="%4C %Z %D %-22.22F (%?l?%4l&%4c?) %s"	#Format der Mail-Übersicht
set folder_format="%2C %8s %d %t %N %f"     #Format des Datei-Browsers
set pager_index_lines=10                    #Anzahl der angezeigten Mails in der Übersicht
#Editor, der zum Verfassen der E-Mail benutzt wird, hier Vim beginnend im Einfügemodus auf der ersten Leerzeile und Zeilenumbruch bei 70 Zeichen
set editor="vim -c 'startinsert' -c 'set tw=70 et' -c 'set wrap' '+/^$'" 

~/.mutt/webde

set from="login@web.de"
set hostname="web.de"
set imap_login="..."
set imap_pass="..."
set folder="imap://login@imap.web.de/"         #Mailbox, die aufgerufen wird
set postponed="=Entwurf"      #Verzeichnis, in dem die Entwürfe abgelegt werden. Das = ist eine Abkürzung für den Inhalt von folder
set record="=Gesendet"        #Verzeichnis für die versendeten Mails  
set spoolfile="=INBOX"        #Verzeichnis, das zu Beginn aufgerufen werden soll

~/.mutt/google

set from=login@googlemail.com
set hostname=googlemail.com
set imap_login="..."
set imap_pass="..."
set folder="imaps://login@imap.googlemail.com/"
set postponed="=[Google Mail]/Entwürfe"
set record="=[Google Mail]/Gesendet"
set spoolfile="=INBOX"

Auch in diesen Dateien müssen natürlich alle Vorkommen von imap_login und imap_pass angepasst werden.

Die Datei .muttrc enthält ebenfalls die Zugangsdaten für die E-Mail-Provider im Klartext, deshalb sollten die Zugriffsrechte auch hier auf den Besitzer der Datei beschränkt werden [4].

Nun ist Mutt erst einmal einsatzfähig. Für die weitere Konfiguration sei auf die Links am Ende des Artikels verwiesen.

Bedienung

Mutt wird über den Befehl

mutt 

gestartet.

Die meisten verfügbaren Befehle werden in der obersten Zeile angezeigt. Die nachfolgende Tabelle listet einige Befehle auf, die dort nicht angezeigt werden und für den Einstieg nützlich sind.

nützliche Tastaturbefehle
Mailbox/E-Mail öffnen, Eingaben bestätigen, in E-Mails eine Zeile weiterblättern
In E-Mails zurückblättern
         In E-Mails eine Seite weiterblättern bzw. nächste E-Mail öffnen
Y Liste der Mailboxen aufrufen
C wechseln der Mailbox ( Tab ⇆ Liefert eine Liste aller Mailboxen bzw. vervollständigt den Namen einer Mailbox)
, bzw. K , J Zum Navigieren in Mailboxen
Tab ⇆ Zur nächsten ungelesenen Nachricht springen
B Bounce – Nachricht weiterleiten ohne den Inhalt zu bearbeiten
F Nachricht weiterleiten
S Nachricht in eine andere Mailbox verschieben
P GPG-Menü öffnen
A Absenderadresse in die Alias-Liste übernehmen

Beim Wechseln der Mailboxen mit C Tab ⇆ gibt es jedoch das Problem, das u.U. nicht die Ordner der aktuellen Mailbox, sondern die der zuletzt gewählten angezeigt werden. Das gewünschte Verhalten ist mit C = Tab ⇆ Tab ⇆ Tab ⇆ zu erreichen, was in obiger Konfiguration auf die Taste T gelegt wurde.

In Mutt lassen sich alle Tastaturbelegungen an die persönlichen Bedürfnisse anpassen. Für detaillierte Informationen über Konfiguration und Bedienung sei abschließend noch einmal auf die Links verwiesen.

Adressbuch

Mutt bringt ein einfaches Adressbuch mit. Dazu trägt man folgendes zusätzlich in die Datei .muttrc ein:

set alias_file=~/.mutt/alias        #Datei, in der die Kontakte gespeichert werden
source ~/.mutt/alias                #Aliasdatei einlesen, damit die Adressen gleich bekannt sind
set reverse_alias                   #Bewirkt, dass in der E-Mail-Übersicht der Name statt der Absender-Adresse angezeigt wird, wenn er in der Alias-Datei steht

Einen Kontakt kann man jetzt entweder erstellen, indem man ihn einfach in dem Format

alias BEZEICHNUNG   NAME DES KONTAKTES   <MAIL@ADRESSE.DE> 

in die Alias-Datei einträgt, oder in Mutt eine E-Mail des gewünschten Kontakts markiert und A drückt. Nun kann man in Mutt als Empfänger einer neuen Mail statt der Adresse die Bezeichnung des Kontakts eingeben ( Tab ⇆ zur Vervollständigung).

Urlview

Hat man das Programm

  • urlview

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install urlview 

sudo aptitude install urlview 

installiert, kann man die Zeilen

macro index \cb |urlview\n
macro pager \cb |urlview\n

zur Mutt-Konfiguration hinzufügen. Hat man jetzt eine E-Mail geöffnet, die eine Internetadresse enthält, kann man Strg B drücken und damit die Urls im Browser öffnen.

Mutt mit Fetchmail und Procmail

Möchte man POP3 nutzen oder aus anderen Gründen seine E-Mails gerne auf seinem lokalen Rechner haben, bietet sich die Benutzung von Fetchmail für das Abholen und Procmail zum Filtern an. Mit Mutt greift man dann auf seine Mails zu, indem man set folder="$HOME/Mail" setzt.

Fetchmail

Das Programm Fetchmail holt E-Mails von einem Server ab und legt sie in der lokalen Mailbox /var/mail/benutzer ab. Gesteuert wird Fetchmail über die Datei .fetchmailrc im Home-Verzeichnis. Den folgenden Quelltext in einen Editor schreiben [3] und die Datei als .fetchmailrc abspeichern. Dieser Quellcode ermöglicht eine einfache POP3-Abfrage (im Beispiel bei GMX).

poll pop.gmx.net  protocol pop3 user "benutzername" password "passwort"

Achtung!

Da die Datei .fetchmailrc die Zugangsdaten für den E-Mail-Anbieter im Klartext enthält, müssen die Zugriffsrechte auf den Besitzer der Datei beschränkt werden [4].

Procmail

Das Programm Procmail verteilt E-Mails nach definierten Regeln in verschiedene Mailboxen. So kann die Post im lokalen Postfach gefiltert werden. Dazu wird im Home-Verzeichnis der Ordner Mail angelegt. Dieser dient später auch Mutt als Arbeitsverzeichnis. Die Steuerung von Procmail geschieht über die Datei .procmailrc, welche im Home-Verzeichnis liegt. Der folgende Quelltext wird in einen Editor eingegeben [3] und unter .procmailrc gespeichert. Der Quelltext beschreibt eine einfache Filterung nach Begriffen im Kopf einer E-Mail. Die erkannten E-Mails werden dann in verschiedene Mailboxen (hier im Beispiel: freunde, arbeit, chef und spam) in ~/Mail kopiert.

MAILDIR=$HOME/Mail                # Dieses Verzeichnis muss existieren
LOGFILE=$HOME/.procmaillog        # Name der Protokolldatei
LOGABSTRACT=no
VERBOSE=off

# E-Mails von diesen Personen immer erlauben (Whitelist)
                        # eine Filterregel (Rezept genannt) beginnt immer mit :0 , ohne die Angabe von weiteren Parameteren
:0                      # wird der Mail-Header mittels egrep durchsucht
* person                # Suchmuster beginnen immer mit einem * , gefolgt vom Suchbegriff
$MAILDIR/freunde        # gibt die Mailbox an, in welche eine entsprechende Mail verschoben wird

:0                      # enthält ein Rezept mehrere Suchbegriffe, so werden diese durch ein logisches UND verknüpft
* @arbeit.de            # eine logische ODER-Verknüpfung gibt es leider nicht
* chef
$MAILDIR/chef

:0 
* @arbeit.de
$MAILDIR/arbeit

# Spam aussortieren 
:0
* cash
$MAILDIR/spam

:0                      
* money
$MAILDIR/spam

:0
* credit
$MAILDIR/spam

:0
* @werbung.de
$MAILDIR/spam    

Nun kann man Fetchmail und Procmail schon einmal testen. Dazu den folgenden Befehl in ein Terminal eingeben[2]:

fetchmail -kv -m "/usr/bin/procmail -d %T" 

Wenn für alle in .procmailrc definierten Regeln eine entsprechende E-Mail abgeholt wurde, existieren nun im Verzeichnis ~/Mail die entsprechenden Dateien (hier im Beispiel: freunde, arbeit, chef und spam).

Diese Revision wurde am 5. Juli 2014 17:34 von glumanda erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Kommunikation, Internet, Email