11.5 Mailprogramme
Nun möchten wir Ihnen einige Mailprogramme vorstellen – Mailprogramme, die typisch sind für Unix, konsolenbasierte und hervorragende grafische Mailprogramme für X11. Je nachdem, auf was für einem Unix-System Sie sich wie auch immer einloggen, können Sie auf diese Art und Weise notfalls immer auf irgendein Mailprogramm zurückgreifen.
11.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. mail ist 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 bekommt, POP3- und IMAP-Accounts »abzuholen«, erfahren Sie später: Dazu holen die Tools fetchmail und procmail Ihre Mails ab.
Mails senden
Um eine Mail zu senden, werden lediglich das Subjekt 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:
user$ Mail -s testmail swendzel
Hallo,
dies ist eine Testmail. Viel Spaß beim Lesen.
.
EOT
Listing 11.6 Eine Mail senden
Nachdem das Kommando eingegeben worden ist, folgt der Mail-Text. Um diesen abzuschließen, sollte in einer Leerzeile ein Punkt geschrieben werden. Darauf sollte die Mail abgesendet und EOT (End Of Text) ausgegeben werden.
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 Ihrer Mailbox befinden.
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 &
Listing 11.7 Mails empfangen
In der ersten Spalte wird mit einem Signalbuchstaben angezeigt, ob die Mail neu ist (N) oder bereits empfangen, aber noch nicht gelesen wurde (U). Die zweite Spalte zeigt eine laufende Nummer, die den Mails zugeordnet wurde. Danach folgen der Absender, das Sendedatum 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.
& 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. . &
Listing 11.8 Mails anzeigen
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.
& reply 1 To: swendzel@sun Subject: Re: testmail Danke für deine kreative Meihl. . EOT &
Listing 11.9 Mails beantworten
11.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 Programms. Des Weiteren helfen die Manpage und die integrierte Hilfe-Funktion (einfach mal help eingeben) oft schon weiter.
11.5.3 elm, pine, mutt und Co.
Unter Linux existieren noch einige weitere Mailprogramme, deren funktionaler Umfang sich keineswegs hinter kommerziellen Applikationen verstecken muss. Ganz im Gegenteil: Die Linux-Projekte sind den kommerziellen oft einen Schritt voraus.
Konsolenprogramme
elm
Die bekanntesten Konsolen-Mailprogramme sind elm, pine und mutt. elm ist ein etwas älterer Mailclient, der ähnliche Funktionalitäten 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].
pine
pine bietet da schon mehr, zum Beispiel eine bessere Oberfläche, die Möglichkeit, Mails über externe Programme zu verschlüsseln, oder aber Zugriff auf das Usenet. Mails können problemlos gespeichert und in verschiedenen Ordnern abgelegt werden.
pine im Internet
Hinzu kommen das integrierte Adressbuch und die Fähigkeit, Mails zu drucken. Im Gegensatz zu den anderen Programmen unterstützt pine das Post Office Protocol Version 3 (POP3). Zudem werden LDAP und IMAP unterstützt. Eine Einführung in pine gibt »Getting Started With Email Using Pine«, das Sie unter http://www.washington.edu/pine/ finden.
mutt
mutt <http://www.mutt.org> ist ein kleiner, aber sehr leistungsfähiger Mailclient. Mutt 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 das kmail-Programm geliefert. Ein weiteres, sehr empfehlenswertes Mailprogramm ist sylpheed. Beide 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 11.4 sylpheed
11.5.4 fetchmail
Einige Mailprogramme beziehen die Mails aus lokalen Mailboxen. Das heißt, jeder gute Client kann darauf konfiguriert werden, Mails aus so 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 sowie 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.
Die Konfiguration von fetchmail wird in der Datei /.fetchmailrc abgelegt. Im einfachsten Fall sieht diese folgendermaßen aus:
# 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 passowrd xyz is nobody here and wants mda /bin/mail
Listing 11.10 Grundlegende .fetchmailrc
fetchmail und procmail
In diesem Fall wird Post vom Server <Der Port des Servers kann mit dem Befehl port angegeben werden.> pop3.sun abgeholt. Er ist über das in proto angegebene Protokoll (POP3) anzusprechen. Der Name des Accounts ist swendzel, das Passwort ist in pass festgelegt.
Alle empfangenen Mails werden an den Mail Delivery Agent (MDA) procmail weitergeleitet. procmail wird die Post anschließend sortieren und in entsprechenden Mailboxen ablegen. Anstelle von procmail können Sie die Mails aber auch einfach an sendmail weiterleiten.
Bei der Testkonfiguration sollten die vorhandenen Mails zwar durchaus 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 .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 verbose-Option. Dadurch erhält man beim Aufruf detailliertere Meldungen. Ein erfolgreicher Testlauf sieht in etwa folgendermaßen aus:
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
Listing 11.11 fetchmail-Test
fetchmail als Dämonprozess
Das Tolle an fetchmail ist, dass es 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:
# fetchmail -d 1800 -L /var/log/fetchmail # tail -f /var/log/fetchmail fetchmail: starting fetchmail 6.2.4 daemon fetchmail: sleeping at Mon, 22 Dec 2005 17:17:54 +0100 (CET) …{}
Listing 11.12 fetchmail als Dämon
11.5.5 procmail
Wie bereits gesagt wurde, handelt es sich bei procmail um einen Mail Delivery Agent (MDA).
procmail 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 den Spam nach /dev/null zu sortieren.
.procmailrc
Für die Verwendung von procmail muss im Home-Verzeichnis eine .procmailrc-Datei angelegt werden, die in etwa folgendermaßen aussehen könnte:
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
Listing 11.13 .procmailrc
Filtern
Wie Sie sehen, arbeitet der Filter mithilfe regulärer Ausdrücke. Eine Mail hat unter anderem auch eine »To:«-Zeile, d. h., wir können mittels regulärer Ausdrücke prüfen, ob der Anfang einer Mail-Zeile dieses »To:« enthält. Darauf folgen ein beliebiges Zeichen mit einem beliebigen Vorkommen (.*) (also der Empfängeraccount) und der String »@t-online.de« für die Host-Bezeichnung.
Genauso könnten wir auch die »From:«- oder »Subject:«-Zeile einer Mail auf verschiedene Begriffe 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).