Gentoo Logo

Email mit Mutt: Schnellstart

Inhalt:

1.  Einführung in Email

Sie sind kein Freund von Email Clients mit ausgefallenen grafischen Benutzeroberflächen oder Sie möchten mit unterschiedlichen Email Clients experimentieren, bevor Sie sich für einen entscheiden? Dann lesen Sie diese Anleitung zum einfachen Einstieg in die Benutzung einiger leistungsfähiger Kommandozeilen-Tools.

fetchmail, procmail, mutt & smtp

Diese Programme sind nicht nur leistungsfähig und hervorragend anpassbar, sondern auch klein und effizient. Sobald Sie sie installiert und eingerichtet haben, werden Sie überrascht sein, was Sie mit diesem Email System alles anstellen können.

Da es sich hier um eine Schnellstart Anleitung handelt, werden wir Mail Transfer Agenten (MTA) wie sendmail, postfix oder exim aussparen. Dadurch sparen Sie sich die komplexe Konfiguration des MTA und die Offenlegung von Port 25.

Möglich ist dies, weil fetchmail angewiesen werden kann, eingehende Emails direkt an einen Mail Delivery Agent (MDA) zu übergeben, anstatt es an Port 25 weiterzuleiten. Für die gute, alte ausgehende Emailauslieferung benötigen wir keinen komplexen MTA.

Folgende Programme benötigen Sie, um Ihr Email System ans Laufen zu bekommen.

Befehlsauflistung 1.1: Holen der benötigten Programme

# emerge fetchmail nbsmtp procmail mutt

Nur vier einfache Konfigurationsschritte trennen Sie noch vom ersten Einsatz Ihres brandneuen Email Systems.

Wichtig: Nach jedem Schritt können Sie einen Test durchführen, um sicherzustellen, dass alles korrekt arbeitet. Auf diese Weise können Sie sicher sein, am Ende ein voll funktionsfähiges Email System Ihr Eigen zu nennen.

2.  Fetchmail

Fetchmail holt Email von einem entfernten Server ab und leitet es an Ihr lokales Verteilungssystem weiter. Dazu müssen Sie lediglich die Datei .fetchmailrc in Ihrem Home Verzeichnis anpassen:

Befehlsauflistung 2.1: Beispielhafte .fetchmailrc

poll mail.myisp.net  protocol pop3 user "myname" password "mypasswd"

Sobald Sie .fetchmailrc angelegt haben, müssen Sie dessen Berechtigungen mit dem chmod Programm anpassen. Die Datei darf nur von ihrem Eigentümer lesbar sein. Benutzen Sie folgenden Befehl, um die Rechte anzupassen:

Befehlsauflistung 2.2: Ändern der Berechtigungen

$ chmod 600 .fetchmailrc

Um fetchmail in Aktion zu erleben, benutzen Sie den "verbose mode" (-v). Zum Abholen aller Emails benutzt man die -a Option. Ruft man fetchmail mit der Option -m auf, leitet es Emails an procmail weiter.

Warnung: Während des Testens ist es empfehlenswert, eine Kopie der Emails per -k Option auf dem entfernten System zu belassen. Falls etwas schief geht, verlieren Sie so nicht alle eingehenden Emails.

Führen Sie fetchmail jetzt aus, um es in Aktion zu erleben!

Befehlsauflistung 2.3: Fetchmail Test #1

$ fetchmail -akv -m "/usr/bin/procmail -d %T"

Sobald Ihr Email System zufriedenstellend läuft, können Sie es per cron Auftrag regelmäßig starten oder in ein Monitorprogramm wie gkrellm einbinden. Des Weiteren kann fetchmail als Daemon mit einstellbarem Abfrageintervall arbeiten.

3.  Procmail

Procmail fungiert als Filter der von fetchmail angelieferten Emails. Außerdem liefert es als MDA Emails an Ihre lokalen Postfächer aus, so dass Mutt (oder ein anderer Email Client) die Emails anzeigen kann.

Zur Benutzung von procmail müssen Sie .procmailrc in Ihrem Home-Verzeichnis anlegen. In dieser Schnellstartanleitung demonstrieren wir die Arbeitsweise anhand einer sehr einfachen .procmailrc, die Email von den Gentoo-Mailinglisten in die Postfächer gentoo-dev, gentoo-user und gentoo-announce ablegt.

Notiz: Procmail-Filter werden "recipes" (Rezepte) genannt. Ich habe auch "recipes" hinzugefügt, die Spam ausfiltern.

Befehlsauflistung 3.1: Beispielhafte .procmailrc

MAILDIR=$HOME/MuttMail                ##Dieses Verzeichnis muss existieren
LOGFILE=$HOME/.procmaillog
LOGABSTRACT=no
#VERBOSE=on... wird nur beim Debuggen benutzt
VERBOSE=off
FORMAIL=/usr/bin/formail
NL="
"

##Empfänger Einträge beginnen mit :0
##Fügen Sie keine Kommentare in Empfänger Einträge ein.
##Deaktiveren Sie Einträge mit der falschen Bedingung !
##Bedingungen beginnen mit * und reguläre Ausdrücke sind Ihr Freund
##Bedingungen werden durch das logische "und" verknüpft und alles nach einem
##* wird an egrep weitergegeben.
##Der Bedingung folgt eine Aktion, in diesem Fall der Name eines Postfachs.


#Duplikate durch formail abfangen
:0 Whc: .msgid.lock
| $FORMAIL -D 16384 .msgid.cache

:0 a
$MAILDIR/duplicates

#Emails von diesen Personen immer erlauben (Whitelist)
:0
* ^From:.*(craig\@hotmail|renee\@local.com)
$MAILDIR/friends

#Spam aussortieren
:0
* ^Subject:.*(credit|cash|money|debt|sex|sale|loan)
$MAILDIR/spam

#Keine HTML Emails
:0
* ^Content-Type:.*html
$MAILDIR/junk

#Mailinglisten in Postfächer einsortieren
:0
* ^List-Id:.*gentoo-user
gentoo-user

:0
* ^List-Id:.*gentoo-dev
gentoo-dev

:0
* ^List-Id:.*gentoo-announce
gentoo-announce

#Andere Gentoo-Email abfangen
:0
* ^From:.*gentoo.org
gentoo

:0
* ^From:.*@freshmeat\.net
freshmeat

##########################################
# Letzte Regel: Emails, die bis hierhin  #
# gelangen, im normalen Postfach ablegen #
##########################################
:0
* .*
default

# Dateiende

Notiz: Nur das MAILDIR Verzeichnis $HOME/MuttMail muss angelegt werden. Die Postfächer werden in diesem Verzeichnis bei Bedarf automatisch angelegt. Einige nützliche Links gibt es unter http://www.procmail.org/

Testen Sie .procmailrc jetzt durch erneuten Aufruf des fetchmail Kommandos wie im ersten Schritt. Vergessen Sie nicht die -k Option, um Emails auf dem entfernten Server zu behalten.

Befehlsauflistung 3.2: Procmail Test #1

$ fetchmail -akv -m "/usr/bin/procmail -d %T"

Fetchmail und procmail funktionieren. Wechseln Sie jetzt in das Verzeichnis $HOME/MuttMail und lesen Sie Ihre Emails mit less oder einem Texteditor.

4.  Der Email Client Mutt

Mutt verwendet man zum Lesen und Erstellen von Emails. Es ist leistungsfähig und sehr gut an die eigenen Bedürfnisse anpassbar, trotzdem klein und effizient.

Vier verschiedene Postfach Formate werden von Mutt unterstützt: mbox, MMDF, MH und Maildir. Der Typ des Postfachs wird automatisch erkannt. In unserem Fall ist das mbox, welches alle Nachrichten des Postfachs in einer einzigen Datei ablegt.

Das ist jedoch noch nicht alles, Mutt beherrscht auch das Arbeiten mit Ordnern auf einem entfernten IMAP Server. Details dazu erfahren Sie im Support Abschnitt 4.11 des Mutt Handbuchs und auf der Mutt Webseite http://www.mutt.org/.

Als Sie im ersten Schritt Mutt installiert haben, wurde eine Konfigurationsdatei in /etc/mutt/Muttrc angelegt. Sie müssen weiterhin eine Datei .muttrc in Ihrem HOME Verzeichnis erzeugen.

Befehlsauflistung 4.1: Beispielhafte .muttrc

(Bitte lesen Sie das hervorragende Mutt Handbuch in /usr/share/doc/mutt*)
(Alle Einstellungen in dieser Datei überschreiben die systemweiten Einstellungen in /etc/mutt/Muttrc)

# cp /etc/mutt/Muttrc ~/.muttrc
# nano -w .muttrc
set pager_context=1
set pager_index_lines=6                 #Einen Mini-Index im Pager anzeigen
set menu_scroll
set pgp_verify_sig=no                   #PGP nicht im Pager anzeigen
set status_on_top                       #Statuszeile oben
set sort=threads                        #Nachrichten im Index nach Thread sortieren

set status_format=" %r %b %f %n      Del %d      Msgs %m %l %> (%P)"
set pager_format="%-10.10i %[!%a %b %d %R]"
set date_format="!%H:%M %a %d %b     "
set index_format="%4C %Z %[%b%d] %-15.15F %s"
set folder_format="%2C %t %8s %d %N %f"

#set sendmail="/usr/bin/nbsmtp -d isp.net -h smtp.isp.net -f yourname@isp.net"

#set from="default-mailaddress"         #Setzen Sie dies auf Ihre Absenderadresse
#set realname="myname"

set record="$HOME/MuttMail/sent"        #Verschickte Emails werden hier gespeichert
set delete=yes                          #Löschen ohne Nachfrage
set include=yes                         #Ursprungsnachricht bei Antwort zitieren
set fast_reply=yes                      #Keine Nachfrage bei Antwort
set beep=no                             #Keine Töne
set markers=no                          #Kein + bei Zeilenumbruch
set confirmappend=no                    #Keine Nachfrage, ob versandte Emails gespeichert werden sollen
set to_chars=" +TCF"                    #Kein L für Mailingslisten

set folder = $HOME/MuttMail
mailboxes =gentoo-user
mailboxes =gentoo-dev
mailboxes =gentoo-announce
mailboxes =gentoo
mailboxes =freshmeat
mailboxes =duplicates
mailboxes =default
mailboxes =friends
mailboxes =junk
mailboxes =spam
mailboxes =keep

save-hook .* =keep                      #Standard Postfach zum Speichern von Emails ist =keep
subscribe gentoo-user gentoo-dev        #abonnierte Mailinglisten

bind pager h display-toggle-weed        #Kopfzeilen durch Drücken von h ein- und ausblenden

# Das alte URL Menü simulieren
macro index \cb |urlview\n 'call urlview to extract URLs out of a message'
macro pager \cb |urlview\n 'call urlview to extract URLs out of a message'

# Fetchmail durch Drücken von G aufrufen
macro index G "!fetchmail -a -m 'procmail -d %T'\r"
macro pager G "!fetchmail -a -m 'procmail -d %T'\r"

# Zum Bearbeiten von .muttrc und anschließendem Einlesen.
# Auf diese Weise wird kein Neustart von Mutt benötigt.
macro generic ,sm ":source $HOME/.muttrc\r"
macro generic \cj "!rxvt -bg wheat -e joe $HOME/.muttrc\r"

# Folgende Kopfzeilen werden standardmäßig ausgeblendet.
# Zuerst alle ausblenden und dann ausgewählte wieder einblenden
ignore *
unignore  Date To From: Subject X-Mailer Organization User-Agent
hdr_order Date From To Subject X-Mailer User-Agent Organization

##Mutt braucht ein paar Farben
##Vier Level von zitiertem Text werden hier unterschieden
##Die Systemeinstellungen in /etc/mutt/Muttrc werden überschrieben

#color quoted green  default
color quoted1 magenta blue
#color quoted2 yellow default
#color quoted3 red default
#color signature cyan cyan


#Es handelt sich hier um eine Kopie der Farben von /etc/mutt/Muttrc.color
#Kommentieren Sie sie aus, um die Standardfarben aus /etc/mutt/Muttrc zu verwenden
# Je vois la vie en rose :-)
color   hdrdefault      brightcyan      blue
color   header          brightwhite     blue    "^from:"
color   header          brightwhite     blue    "^subject:"

color   quoted          brightgreen     blue
color   signature       brightwhite     blue

color   indicator       blue            green

color   error           red             black
mono    error           bold
color   status          black cyan
mono    status          bold
color   tree            yellow          blue

color   tilde           brightmagenta   blue
color   body            brightwhite     blue    "[-a-z_0-9.]+@[-a-z_0-9.]+"
mono    body            bold                    "[-a-z_0-9.]+@[-a-z_0-9.]+"
color   body            brightyellow    black   "^Good signature"
mono    body            bold                    "^Good signature"
color   body            brightwhite     red     "^Bad signature from.*"
mono    body            bold                    "^Bad signature from.*"
color   normal          white           blue
color   message         green           black
color   attachment      brightgreen     blue

# Ende dieser Datei - sie könnte aber noch ewig so weitergehen... :)

Hierbei handelt es sich nur um eine beispielhafte .muttrc. Es gibt viele weitere Optionen zur Konfiguration, wie die Integration mit GPG. Unter http://www.dotfiles.com/index.php?app_id=27 finden Sie weitere Beispiele und Hilfen.

Es ist an der Zeit, Ihre .muttrc zu testen.

Befehlsauflistung 4.2: .muttrc testen

$ mutt -y

Dadurch öffnet sich Mutt mit einem Menü, das die in Test 2 beim Aufruf von fetchmail erzeugten Postfächer anzeigt.

Durch Tippen von ? bekommen Sie Hilfe zur Navigation in den Mutt Postfächern.

5.  SMTP

Zu guter Letzt richten Sie nbsmtp (englisch 'No-Brainer SMTP') ein, das zum Senden von Emails an den SMTP Server genutzt wird. Dieser Schritt ist der einfachste, da lediglich ein Eintrag in Ihrer .muttrc nötig ist.

domain: Die Domain, zu der nbsmtp gehört. Das wird fast immer die Domain sein, die auch in Ihrer Emailadresse benutzt wird.

from@addr: Die Adresse, die nbsmtp als Absender eintragen soll. Es sei angemerkt, dass diese sich von der Adresse unterscheiden kann, die Sie in Ihrem Email Client eingetragen haben.

host: Der SMTP Server, an den die Email übergeben wird.

Befehlsauflistung 5.1: SMTP-Unterstützung hinzufügen

$ nano -w .muttrc
set sendmail="/usr/bin/nbsmtp -d isp.net -h smtp.isp.net -f urname@isp.net"

Es ist soweit: Sie können eine Email verschicken. Drücken Sie m im Mutt Pager oder Index, um eine Testnachricht zu erstellen. Tragen Sie als Empfänger Ihre eigene Emailadresse ein. Mutt wird die als EDITOR bzw. VISUAL eingetragenen Programme zum Erstellen der Email benutzen, falls Sie nicht editor= in .muttrc gesetzt haben. Ist die Nachricht fertig geschrieben, verschicken Sie sie durch Drücken von y. Falls kein Fehler auftritt, erscheint ein 'sending mail' gefolgt von 'Mail sent'.

Den Speicherort der versandten Emails stellen Sie in .muttrc durch Ändern von set record="$HOME/MuttMail/sent" ein.

Um den Test abzuschließen, lassen Sie fetchmail noch einmal laufen, um alle Emails abzurufen und überprüfen Sie, dass die an Sie addressierte Nachricht angekommen ist. Haben Sie Ihre Nachricht gefunden, drücken Sie h um alle Kopfzeilen (Header) anzuzeigen und den kompletten Übertragungspfad zu sehen.

Notiz: Ein weiteres nützliches Programm ist urlview. Es extrahiert alle URLs aus dem Nachrichtentext und schickt Sie an Ihren Browser.

Befehlsauflistung 5.2: Holen von urlview

# emerge urlview

Erzeugen Sie danach ~/.urlview, indem Sie die Konfigurationsdatei aus /usr/share/doc/urlview*/ kopieren und stellen Sie Ihren Browser ein.

Sie haben jetzt ein leistungsfähiges und hoch anpassungsfähiges Email System. Um diese Flexibilität auszuschöpfen, sollten Sie alle Handbücher und die Dokumentation lesen. Viele beispielhafte Konfigurationsdateien sind im Netz verfügbar: suchen Sie nach procmailrc und muttrc.

6.  SMTP mit Authentifizierung

Benutzung von nbSMTP

Wenn Sie vor dem Senden von Email Benutzername und Passwort an Ihren SMTP Server übermitteln müssen, können Sie dem set sendmail Kommando in Ihrer .muttrc folgendermaßen ein -U <Benutzername> -P <Passwort> hinzufügen:

Befehlsauflistung 6.1: Benutzername und Passwort für SMTP setzen

set sendmail="/usr/bin/nbsmtp -U Benutzername -P Passwort -d isp.net -h smtp.isp.net -f username@isp.net"

Wenn Sie diese Informationen nicht in Ihre .muttrc Datei aufnehmen möchten, können Sie eine Datei .nbsmtprc anlegen, die alle Informationen aufnimmt:

Befehlsauflistung 6.2: ~/.nbsmtprc Beispiel

auth_user = Benutzername
auth_pass = Passwort

Alternative: Benutzung von msmtp

msmtp ist eine einfache Alternative zu nbsmtp mit ähnlichen Möglichkeiten.

Befehlsauflistung 6.3: Installation von msmtp

# emerge msmtp

Melden Sie sich nun als normaler Benutzer an und konfigurieren Sie msmtp, indem Sie die ~/.msmtprc Datei erzeugen und die Informationen zu Ihrem SMTP-Server dort eintragen. Vergessen Sie nicht, die Dateirechte auf sichere Werte zu setzen!

Befehlsauflistung 6.4: msmtp konfigurieren

$ nano -w .msmtprc
account default
host smtp.Ihr_Provider.net
from Ihr_Benutzername@provider1.net
#Im Handbuch finden Sie Details zu den Authentifizierungsmöglichkeiten
auth login
user Ihr_Benutzername
password Ihr_Passwort
#Falls Ihr SMTP Server TLS Verschlüsselung unterstützt,
#entfernen Sie das Kommentarzeichen in der nächsten Zeile
#tls

Setzen Sie jetzt die Dateirechte auf einen sicheren Wert:

Befehlsauflistung 6.5: Setzen der Dateirechte für die Konfigurationsdatei

$ chmod 600 .msmtprc

Zum Schluss ändern bzw. ergänzen Sie die folgende Zeile in .muttrc

Befehlsauflistung 6.6: msmtp mit Mutt benutzen

$ nano -w .muttrc
set sendmail="/usr/bin/msmtp"

Starten Sie mutt und schicken Sie sich selbst eine Testnachricht, um sicher zu gehen, dass es funktioniert! Die msmtp man Seite erklärt Ihnen weitere Optionen und hält auch einige Beispiele parat.



Drucken

Seite aktualisiert 17. September 2006

Die Originalversion dieser Übersetzung wird nicht länger gepflegt

Zusammenfassung: Diese Anleitung führt in die Benutzung einiger leistungsfähiger Kommandozeilen-Tools für Email ein: fetchmail, procmail, mutt, nbsmtp, msmtp.

Mike Polniak
Autor

Ken Nowack
Bearbeiter

John Hitchings
Mitarbeiter

Dennis Nienhüser
Übersetzer

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.