Email mit Mutt: Schnellstart
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
LOGFILE=$HOME/.procmaillog
LOGABSTRACT=no
#VERBOSE=on... wird nur beim Debuggen benutzt
VERBOSE=off
FORMAIL=/usr/bin/formail
NL="
"
#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 |
# 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
auth login
user Ihr_Benutzername
password Ihr_Passwort
|
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.
Die Inhalte dieses Dokuments sind, sofern nicht explizit
anders genannt, unter der Creative Commons -
Namensnennung / Weitergabe Lizenz lizenziert. Die Gentoo Name and Logo
Usage Guidelines treffen zu.
|