16.5 Mailprogramme
Nun möchten wir Ihnen einige Mailprogramme vorstellen – zum einen Mailprogramme, die typisch sind für Unix, und zum anderen sonstige konsolenbasierte und hervorragende grafische Mailprogramme für X11. Je nachdem, auf welcher Art von Unix-System Sie sich einloggen, können Sie nach der Lektüre dieses Abschnitts notfalls immer auf irgendein Mailprogramm zurückgreifen.
16.5.1 mail
Konsolen- Mailprogramme
Nach einem erfolgreichen Login am System wird in der Regel zunächst geprüft, ob neue Mails für Sie eingetroffen sind. Es erscheint dann entweder die Meldung You have mail oder No mail for [Benutzer]. Die Prüfung wird über das Programm mail vorgenommen – ein recht simples Mailprogramm, das zum Standardumfang eines jeden Unix-Systems gehört.
[»]Leider unterstützt mail weder POP3 noch IMAP. Es greift schlicht auf das Verzeichnis /var/mail zu, um sich über den Status von eingetroffenen Mails zu informieren. Wie man dieses Programm trotzdem indirekt dazu bringt, POP3- und IMAP-Accounts »abzuholen«, erfahren Sie in den Abschnitten fetchmail und procmail: Dazu holen Sie mit dem Tool fetchmail Ihre Mails ab und leiten sie an das Tool procmail weiter.
Mails senden
Um eine Mail zu senden, werden lediglich die Betreffzeile und der Empfänger übergeben. Wenn Sie auf dem lokalen Rechner eine Mail an sich selbst versenden wollen, würde dies etwa folgendermaßen aussehen:
Listing 16.7 Eine Mail senden
user$ Mail -s testmail swendzel
Hallo,
dies ist eine Testmail.
Viel Spaß beim Lesen.
.
EOT
Nachdem das Kommando eingegeben worden ist, folgt der Mail-Text. Um diesen abzuschließen, sollte in einer Leerzeile ein Punkt geschrieben werden. Daraufhin sollte das Programm die Mail absenden und EOT (End Of Text) ausgeben.
Mails empfangen
Zum Empfang von E-Mails wird lediglich das mail-Programm aufgerufen. Es gibt daraufhin seine Versionsnummer und Ihre Mailbox-Daten aus. Darunter wird eine Liste der verfügbaren Mails angezeigt, die sich momentan in der Mailbox befinden.
Listing 16.8 Mails empfangen
user$ Mail
Mail version 8.1.2 01/15/2001. Type ? for help.
"/var/mail/swendzel": 2 messages 2 new
>N 1 swendzel@sun Sat Dec 20 13:59 18/588 testmail
>N 2 swendzel@sun Sat Dec 20 14:01 15/549 2.testmail
&
In der ersten Spalte wird mit einem Signalbuchstaben angezeigt, ob die Mail neu ist (N, new) oder bereits empfangen, aber noch nicht gelesen wurde (U, unread). Die zweite Spalte zeigt eine laufende Nummer an, die der Mail zugeordnet ist. Danach folgen der Absender, das Versanddatum und die Uhrzeit sowie die Größe der Mail und der Betreff.
Mails lesen
Mit dem Kommando type (kurz t) kann über die laufende Nummer die anzuzeigende Mail ausgewählt werden.
Listing 16.9 Mails anzeigen
& type 1
Message 1:
From: swendzel@sun Sat Dec 20 13:59 18/588 testmail
From: Steffen Wendzel <swendzel@sun>
To: swendzel@sun
Subject: testmail
Hallo,
dies ist eine Testmail.
Viel Spaß beim Lesen.
.
&
Mails beantworten
Um eine Antwort auf eine Mail zu schreiben, müssen Sie diese entweder auswählen (also mit type anzeigen) und anschließend reply angeben, oder Sie übergeben dem reply-Befehl die Nummer der Mail. Dem Mail-Betreff wird nun ein »Re:« (Reply) vorangesetzt, und Sie können damit beginnen, den Mail-Text zu verfassen. Abgeschlossen wird dieser Vorgang, indem Sie in einer Leerzeile einen Punkt schreiben.
Listing 16.10 Mails beantworten
& reply 1
To: swendzel@sun
Subject: Re: testmail
Danke für deine kreative Mehl.
.
EOT
&
16.5.2 Mails löschen und weitere Aktionen
Mit dem Befehl delete können Sie eine E-Mail durch Angabe ihrer Nummer löschen: delete n.
[»]Um die Liste der aktuellen Mails erneut aufzurufen, können Sie das Kommando f verwenden. Sie möchten mehr zu diesem Programm erfahren? In [Shoens94A] finden Sie
eine komplette Beschreibung. Des Weiteren helfen die Manpage und die integrierte Hilfe-Funktion
(einfach help eingeben) oft schon weiter.
16.5.3 Elm, Mutt und Co.
Unter Linux existieren noch einige weitere Mailprogramme, deren funktionaler Umfang sich hinter kommerziellen Applikationen wie MS Outlook [Fn. Falls Sie bisher Outlook verwendet haben, lohnt sich ein Blick auf die GNOME-Software Evolution.] nicht verstecken muss. Ganz im Gegenteil: Die Linux-Projekte sind den kommerziellen oft einen Schritt voraus.
Konsolenprogramme
Elm
Die bekanntesten Konsolen-Mailprogramme sind Elm, das nicht mehr weiterentwickelte Pine und Mutt. Elm ist ein etwas älterer Mailclient, der ähnliche Funktionalität wie mail bietet. Der Vorteil besteht unter anderem darin, dass Elm ein etwas komfortableres Benutzer-Interface bietet. Weitere Informationen zu Elm erhalten Sie in [Pember92A].
Mutt
Mutt [Fn. http://www.mutt.org] ist ein kleiner, aber sehr leistungsfähiger Mailclient. Er bietet eine farbige GUI, MIME-Support, Verschlüsselung von E-Mails (über externe Programme) und Unterstützung der wichtigsten Protokolle (POP3, IMAP, LDAP).
Grafische Mailprogramme
Natürlich stehen Ihnen auch unter X11 einige hervorragende Mailprogramme zur Verfügung. Mit KDE wird KMail geliefert und GNOME enthält Evolution. Ein weiteres, sehr empfehlenswertes Mailprogramm ist Sylpheed.
All diese Programme kommen ohne lokales sendmail-System aus, können über den Mailserver Ihres Providers senden und multiple Mail-Accounts verwalten. Sylpheed ist zudem als Newsreader einsetzbar.
Abbildung 16.2 sylpheed
16.5.4 Fetchmail
Einige Mailprogramme beziehen die Mails aus lokalen Mailboxen. Im Übrigen kann jeder gute Client darauf konfiguriert werden, Mails aus solch einer Mailbox zu beziehen. Fetchmail ist ein Programm, das die Mails für eine beliebige Anzahl von Accounts von den Servern der Provider herunterlädt und in lokale Mailboxen einträgt bzw. an einen sogenannten Mail Delivery Agent (MDA) weiterleitet. Fetchmail unterstützt dabei diverse Protokolle wie POP2, POP3, IMAP und einige weitere, auch verschlüsselte Verbindungen. Die Feature-Liste ist recht lang und soll hier auch gar nicht zu sehr im Mittelpunkt stehen. Konzentrieren wir uns lieber auf eine einfache Basiskonfiguration anhand eines Beispiels.
[zB]Die Konfiguration von Fetchmail wird in der Datei ~/.fetchmailrc abgelegt. Im einfachsten Fall sieht diese Datei folgendermaßen aus:
Listing 16.11 Grundlegende .fetchmailrc-Datei
# Entweder so:
server pop3.sun
proto pop3
user swendzel
pass mypass
# keep
mda /usr/local/bin/procmail
# Oder so:
poll pop3.sun with proto pop3:
user swendzel there has password mypass
is swendzel here and wants mda \
/usr/local/bin/procmail
user nocheiner there has password xyz
is nobody here and wants mda /bin/mail
Fetchmail und Procmail
In diesem Fall wird Post vom Server pop3.sun abgeholt. Er ist über das in proto angegebene Protokoll (POP3) anzusprechen. Der Port des Servers kann optional mit dem Befehl port angegeben werden. Der Name des Accounts ist swendzel, das Passwort ist in pass festgelegt. Alle empfangenen Mails werden an den Mail Delivery Agent (MDA) Procmail weitergeleitet. Dieser wird die Post anschließend sortieren und in entsprechenden Mailboxen ablegen. Statt an Procmail können Sie die Mails aber auch einfach an Sendmail weiterleiten. Bei der Testkonfiguration sollten die vorhandenen Mails zwar heruntergeladen, jedoch nicht vom Server gelöscht werden – es könnte schließlich etwas schiefgehen. Dieses Verhalten erzwingt man durch den keep-Befehl in der Datei .fetchmailrc.
[»]Da die Passwörter im Klartext in der Konfigurationsdatei abgelegt werden, sollte die Datei mit entsprechenden Zugriffsrechten versehen werden. Das heißt, nur dem Eigentümer sollten das Schreib- und Leserecht zustehen, die restlichen Bits sind auf Null zu setzen.
Testen der Konfiguration
Am besten testet man Fetchmail mit der Option verbose. Dadurch erhält man beim Aufruf detailliertere Meldungen. Ein erfolgreicher Testlauf sieht etwa so aus:
Listing 16.12 Fetchmail-Test
user$ fetchmail
1 message for swendzel@sun at pop3.sun (845 octets).
reading message swendzel@sun@pop3.sun:1 of 1 (845 octets)
procmail: [19470] Mon Dec 22 17:04:09 2005
procmail: Assigning "COMSAT=off"
procmail: Assigning "COMSAT=no"
procmail: Assigning "MAILDIR=~/Mail"
procmail: Assigning "PMDIR=~/.procmail"
procmail: Assigning "LOGFILE=~/.procmail/log"
procmail: Opening "~/.procmail/log" flushed
Fetchmail als Dämonprozess
Das Tolle an Fetchmail ist, dass das Tool auch als Dämonprozess betrieben werden kann. So kann beispielsweise alle 30 Minuten Post abgeholt werden, ohne dass ein Aufruf des Programms erfolgen muss. Dafür verwenden wir den Parameter -d [Zeit], wobei [Zeit] die Wartezeit in Sekunden angibt, die gewartet werden soll, bis wieder neue Post abgeholt werden kann. Der Parameter -L protokolliert die Ausgaben von Fetchmail in der Datei /var/log/fetchmail:
Listing 16.13 Fetchmail als Dämon
# fetchmail -d 1800 -L /var/log/fetchmail
# tail –2f /var/log/fetchmail
fetchmail: starting fetchmail 6.2.4 daemon
fetchmail: sleeping at Mon, 22 Dec 2005 17:17:54 +0100 (CET)
16.5.5 Procmail
Wie bereits festgestellt wurde, handelt es sich bei Procmail um einen Mail Delivery Agent (MDA). Er nimmt Mails (etwa von Fetchmail) entgegen und sortiert diese. Damit ist es beispielsweise möglich, die Mails für die Mailing-Liste X in Mailbox Y, die Mails von Freunden in Mailbox Z oder Spam nach /dev/null zu sortieren.
.procmailrc
Für die Verwendung von Procmail muss im Home-Verzeichnis eine .procmailrc-Datei angelegt werden, die wie folgt aussehen könnte:
Listing 16.14 Eine typische .procmailrc-Datei
VERBOSE=on # Detailliertere Ausgaben
COMSAT=off # Keine Benachrichtigung über
# neue Mails via comsat
MAILDIR=$HOME/Mail/ # Mailbox-Verzeichnis
PMDIR=$HOME/.procmail # Das procmail-Verzeichnis
LOGFILE=$HOME/.procmail/log # Die Logdatei
# Alle Post, die an den T-Online-Account geht, in
# die Mailbox IN.TONLINE packen:
:O:
* ^To:.*@t-online.de
IN.TONLINE
# Die Post für einen GMX-Account in die entspr.
# Mailbox packen:
:O:
* ^To:.*@gmx.net
IN.GMX
Filtern
Wie Sie sehen, arbeitet der Filter mithilfe regulärer Ausdrücke. Eine Mail hat unter anderem auch eine »To:«-Zeile; somit können wir mittels regulärer Ausdrücke prüfen, ob der Anfang einer Mail-Zeile dieses »To:« enthält. Darauf folgen beliebig viele beliebige Zeichen (.*) (also der Empfängeraccount) und der String »@t-online.de« für die Host-Bezeichnung. Analog könnten wir auch die »From:«- oder »Subject:«-Zeile einer Mail auf verschiedene Ausdrücke hin filtern.
Zwar kann Procmail noch einiges mehr, dennoch soll an dieser Stelle diese kleine Einführung reichen. Wir verweisen aber auf die Manpage procmailrc(5).
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.