Einfacher Versand

SMTP-Plug-In für den Mailreader Mutt

Früher war sprichwörtlich alles besser: Der Netzwerkverkehr wurde noch nicht durch Spam belastet, man schrieb Mails mit Mutt, und es genügte ein lokaler SMTP-Server auf dem heimischen Rechner, um Nachrichten direkt abzuliefern.

mutt.png

Abb. Der Mailreader Mutt in Aktion.

Als dann die ersten Spam-Wellen anrollten, wurden die Provider vorsichtig und setzten unter anderem Dial-Up-Listen (DUL) ein, die IP-Adressen von Einwahl-Rechnern enthielten. Damit wurden die Mails von Dial-Up-Kunden regelrecht abgeblockt. Zu diesem Zeitpunkt wurde es ratsam, E-Mails nicht mehr direkt, sondern über den SMTP-Server eines Providers zu versenden.

Für den Anwender bedeutete dies, dass er tief in die Materie seines lokalen Mailservers einsteigen musste, damit Mails anhand der Absendeadresse auch beim richtigen Smarthost landeten. Aus diesem bis in die heutigen Tage andauernden Dilemma bietet Ihnen das Mutt-Plug-In MSMTP einen Ausweg aus der schwierigen Konfigurationsarbeit.

Installieren

Die Installation des SMTP-Client lässt sich schnell erledigen. Auf der Homepage des Projektes [1] finden Sie sowohl Links zu MSMTP im Paketformat für verschiedene Distributionen als auch auf den Quellcode des Programms. Um MSMTP aus dem Quellcode zu übersetzen, öffnen Sie nach dem Herunterladen des Tarballs zunächst das gepackte Archiv und wechseln danach in den neu entstandenen Ordner.

[andreas]~ > tar xvzf msmtp-1.2.↩
4.tar.gz
[andreas]~ > cd msmtp-1.2.4

Es folgt die für das Kompilieren übliche Befehlsfolge ./configure und make, um den Quellcode in ein maschinenlesbares Programm zu verwandeln. Wenn Sie auf die SSL-Unterstützung des Plug-Ins verzichten wollen, die eine verschlüsselte Datenübertragung ermöglicht, dann geben Sie dem Aufruf des Configure-Skriptes den Parameter --disable-ssl mit. Ohne diese Option wird das Programm mit SSL-Support kompiliert, für den Sie unter Umständen zusätzliche Pakete aus Ihrer Distribution nachinstallieren müssen.

Um den SMTP-Client im Verzeichnisbaum unter /usr/local zu installieren, melden Sie sich als root an. Das Kommando make install legt jetzt die Programmdatei im Verzeichnis bin ab und die Manpage im man/man1 im oben genannten Pfad.

[andreas]~ > su
Password: (Ihr root-Passwort)
root# make install

Alternativ können Sie MSMTP auch als gewöhnlicher User ohne besondere Rechte installieren. Um dies zu erreichen, verwenden Sie bereits beim ./configure-Aufruf den Parameter --prefix=:

[andreas]~ > ./configure --prefix=/home/Username
[andreas]~ > make
[andreas]~ > make install

Nun liegt MSMTP direkt in Ihrem Heimatverzeichnis unter ~/bin/msmtp. Alles, was Sie jetzt noch tun müssen, ist die Umgebungsvariable $PATH anzupassen. Ergänzen Sie dazu beispielsweise die Datei ~/.bashrc um den Eintrag

PATH=$PATH:/home/Username/bin

Reine Einstellungssache

Bevor das Plug-In zum Einsatz kommt, müssen Sie ihm noch einige Daten verraten. Dazu erstellen Sie die Konfigurationsdatei ~/.msmtprc mit Ihrem Lieblingseditor. Nehmen wir an, Sie nutzen die SMTP-Server zweier Provider, die Ihre Mails annehmen und weiterleiten. Der erste Provider nimmt als Ihr Standard-Anbieter besonders häufig Mails von Ihnen an. Sie nennen die erste Zeile, unter die die Daten für seinen Zugang gehören, beispielsweise account default. Darunter tragen Sie hinter dem Schlüsselwort host seinen SMTP-Server ein:

account default
host smtp.provider.tld

Falls es sich bei smtp.provider.tld um einen Dienstleister wie T-Online handelt, bei dem Sie sich nicht anmelden müssen, weil Sie bereits über die Einwahl ins Internet authentifiziert sind, genügen diese zwei Zeilen. Nun tragen den Envelope-From-Header ein. Er entspricht in der Regel Ihrer Mailadresse:

from mail@adres.se

Jetzt kommt der zweite Provider an die Reihe. Sie beginnen wieder mit den Zeilen account, host und from:

account tux
host smtp.tux.tld
from mail@tux.tld
user Benutzername
password Geheim

Der Rechner smtp.tux.tld verlangt im Gegensatz zum ersten Server eine Authentifizierung, die er mit user und password bekommt. Bitte beachten Sie an dieser Stelle, dass Sie die Zugriffsrechte [2] für die Datei ~/.msmtprc so setzen, dass kein fremder User versehentlich (oder absichtlich) Ihre Zugangsdaten lesen kann.

Damit ist die Konfiguration des Plug-Ins bereits abgeschlossen. Weitere Optionen entnehmen Sie bitte der Manual-Seite des Programms mit dem Befehl man msmtp. Dort finden Sie zudem nähere Angaben zum Initiieren einer verschlüsselten Datenübermittlung.

Eine Hand voll Makros

Der weitere Schritt in den Einstellungen betrifft das Zusammenspiel von Mutt und MSMTP. Dazu ändern Sie zunächst die Variable sendmail in Mutts Konfigurationsdatei, die in der Datei ~/.mutt/muttrc oder ~/.muttrc) liegt:

set sendmail="/usr/local/bin/msmtp"

Nun wird Mutt die Mails nicht mehr bei Ihrem lokalen Mailserver abliefern, sondern /usr/local/bin/msmtp nutzen. Es empfiehlt sich außerdem, die Variable use_from auf no zu setzen und Ihre Absendeadresse durch die Einstellung my_hdr zu definieren:

set use_from=no
my_hdr From: "Mein Name" <mail@adres.se>

Was tun Sie jedoch bei mehreren Mail-Providern, wie sie in unserer Bespielkonfiguration aufgeführt sind? Hier dürfen Sie nach Herzenslust mit den Makrobefehlen von Mutt spielen:

macro generic <F2> ":my_hdr From: tux@tux.tld<enter>:set sendmail='/usr/local/bin/msmtp -a tux'"
macro generic <F3> ":my_hdr From: tf@test.tld<enter>:set sendmail='/usr/local/bin/msmtp -a test'"

Im obigen Beispiel wechselt Mutt nach dem Druck der Funktionstaste [F2] oder [F3] den Absender samt dessen Mailprovider: Die Option -a des Kommandos msmtp in der Variable sendmail bestimmt den in der Datei ~/.msmtprc gewünschten Account – also tux oder test.

Wenn Ihnen das zu umständlich ist, dann bieten sich statt eines Makros die so genannten Hooks zur Automation an. Mit ihnen definieren Sie je nach Empfänger einer Mail (send-hook) oder der Mailbox (folder-hook), in der Sie sich gerade befinden, die Werte von my-hdr From: und set sendmail:

# send-hook
send-hook '~t .*pinguin.fi' 'my_hdr From: "Tux Fisch" <tux@tux.tld>'
send-hook '~t .*pinguin.fi' 'set sendmail="/usr/local/bin/msmtp -a tux"'
# folder-hook
folder-hook =debian$ 'my_hdr From: "Tux Fisch" <tf@test.tld>'
folder-hook =debian$ 'set sendmail="/usr/local/bin/msmtp -a test"'

Falls Sie sich intensiver mit den Mutt-Makros und den Hooks beschäftigen möchten, können Sie auf das Mutt-Handbuch zurückgreifen, das auch in deutscher Übersetzung vorliegt [3].

Offline-Betrieb

Einen Haken hat die Arbeit mit MSMTP bis hierhin: Der Versand Ihrer Mails ist nur bei bestehender Internet-Verbindung möglich. Damit die Nachrichten bis zur Einwahl ins Internet zwischengelagert werden, holen Sie sich das Tar-Archiv msmtpqueue von der Download-Seite des Projektes [3].

Nach dem Entpacken des Archivs mit dem Befehl tar xvzf msmtpqueue-0.3.tar.gz liegen im gleichnamigen Verzeichnis die Shell-Skripte msmtp-enqueue.sh und msmtp-runqueue.sh. Verschieben Sie als Superuser root die beiden Skripte in das Verzeichnis /usr/local/bin, und passen Sie die Benutzerrechte an [2]:

[andreas]~ > su
Password: (Ihr root-Passwort)
root# mv msmtp-runqueue.sh /usr/local/bin/
root# chown root.root /usr/local/bin/msmtp-runqueue.sh
root# chmod 755 /usr/local/bin/msmtp-runqueue.sh

Beim Skript msmtp-enqueue.sh verfahren Sie ebenfalls in der oben beschriebenen Weise. Ändern Sie jetzt in Ihrer Mutt-Konfiguration den Eintrag set sendmail="/usr/local/bin/msmtp" in

set sendmail="/usr/local/bin/msmtp-enqueue.sh"

Die Optionen des Plug-Ins behalten auch über den Skript-Aufruf ihre Gültigkeit:

set sendmail="/usr/local/bin/msmtp-enqueue.sh -a tux"

Eine versandfertige Mail wird nun im Verzeichnis ~/.msmtpqueue abgelegt, bis Sie das Skript msmtp-runqueue.sh aufrufen. Mit der folgenden Meldung bestätigt Ihnen MSMTP den erfolgreichen Versand Ihrer Nachricht.

[andreas]~ > msmtp-runqueue.sh
 * Sending 2004-10-24-12.56.30.mail…
2004-10-24-12.56.30.mail sent successfully

Die Arbeit mit MSMTP erweist sich zwar als Kinderspiel, erfordert allerdings etwas Bastelei mit der Mutt-Konfiguration. Doch dies ist ein Punkt, der einem echten Mutt-User eher Freude als Verdruss bereitet.

Glossar

Spam

Unerwünscht zugesandte Werbe-Mails.

SMTP

Simple Mail Transport Protocol. Verfahren zur Datenübertragung von Mails.

Infos

[1] MSMTP-Homepage: http://msmtp.sourceforge.net

[2] Heike Jurzik, Rechte und Pflichten – meine oder Deine Datei, LinuxUser 10/2000, S. 93: http://www.linux-user.de/ausgabe/2000/10/093-zubefehl/befehl9.html

[3] Mutt-Handbuch: ftp://ftp.fu-berlin.de/pub/unix/mail/mutt/doc/de/

[4] MSMTP-Queue: http://sourceforge.net/projects/msmtp/

Tip a friend    Druckansicht beenden Bookmark and Share
Kommentare