Es gibt Situationen, in denen ein Linux-System E-Mails versenden soll. Ein Beispiel wäre etwa Cron, das bei Problemen Status-Mails verschicken kann. Oder man betreibt einen Webserver, über den E-Mails mit der mail-Funktion von PHP versendet werden sollen. In solchen Fällen wäre die Einrichtung schwerer Brocken wie Postfix, Sendmail und Co. jedoch zu aufwändig.
Für Privatpersonen, die keinen richtigen Server mit gültigen Zertifikaten und festen IP-Adressen besitzen, ist es ohnehin nicht möglich, E-Mails direkt zu versenden. Die meisten Mail-Server lehnen E-Mails von solchen Servern ab, um Spam zu vermeiden. Privatnutzer müssen daher ihre Mails an einen SMTP-Relay-Server weiterleiten, also den SMTP-Server eines „richtigen“ Anbieters. Dafür genügt ein einfaches Tool wie ssmtp.
ssmtp ist kein vollwertiger MTA (Mail-Transfer-Agent) wie Postfix, Exim oder Sendmail. Es handelt sich vielmehr um ein kleines Tool, das eine E-Mail vom System entgegennimmt und sie an einen zuvor konfigurierten Mailserver weiterleitet. Wie eingangs erwähnt, müsste man mit einem Heimserver ohnehin einen MTA wie Postfix als „Satellite System“ konfigurieren und Mails über einen Smarthost leiten. Daher kann man sich die aufwendige Einrichtung eines vollständigen Dienstes sparen. ssmtp muss zunächst aus den Paketquellen installiert werden…
$ sudo apt-get install ssmtp
Nach der Installation gibt es zwei Konfigurationsdateien, die an die eigene Situation angepasst werden müssen: /etc/ssmtp/ssmtp.conf und /etc/ssmtp/revaliases. Beginnen wir mit der Datei ssmtp.conf, in der der zu nutzende Mailserver eingetragen wird.
$ sudo gedit /etc/ssmtp/ssmtp.conf
Im Folgenden führe ich Beispiele für die Konfiguration mit Google Mail und GMX an. Wie ihr sehen werdet, steht das Passwort im Klartext in der Konfigurationsdatei. Ich empfehle daher, für den eigenen Mailserver ein separates Konto bei einem Freemailer anzulegen oder bei Google die 2-Schritt-Verifizierung zu aktivieren, um ein spezifisches Passwort für ssmtp zu erstellen. So steht das Passwort nicht im Klartext auf der Festplatte.
Google Mail
root=EIN.BEISPIEL@gmail.com mailhub=smtp.gmail.com:587 hostname=EIN.BEISPIEL@gmail.com UseSTARTTLS=YES AuthUser=EIN.BEISPIEL AuthPass=GEHEIM FromLineOverride=YES
GMX.net
root=EIN.BEISPIEL@gmx.de mailhub=mail.gmx.net:465 rewriteDomain=gmx.net hostname=gmx.net UseTLS=YES AuthUser=EIN.BEISPIEL@gmx.DE AuthPass=GEHEIM FromLineOverride=NO
Passt die in FETT geschriebenen Passagen an eure Gegebenheiten an. Die übrigen Einstellungen könnt ihr in der Regel unverändert übernehmen. Sobald die Datei ssmtp.conf vollständig konfiguriert ist, könnt ihr festlegen, welcher Benutzer welchen Mailserver verwenden darf. Dies wird in der Datei revaliases festgelegt, die ebenfalls in einem Editor geöffnet werden muss.
$ sudo gedit /etc/ssmtp/revaliases
Tragt hier im folgenden Format ein, welcher Benutzer welchen Server verwenden darf. In meinem Beispiel greife ich wieder auf Google Mail zu. Die in FETT markierten Passagen müssen ebenfalls angepasst werden.
root:EIN.BEISPIEL@gmail.com:smtp.gmail.com:587
www-data:EIN.BEISPIEL@gmail.com:smtp.gmail.com:587
OTTO:EIN.BEISPIEL@gmail.com:smtp.gmail.com:587
In meinem Beispiel dürfen „root“, der Benutzer des Webservers „www-data“ und der Benutzer „otto“ E-Mails direkt vom System versenden. Die zweite Zeile könnt ihr weglassen, falls bei euch kein Webserver installiert ist oder dieser keinen Zugriff auf ssmtp benötigt.
Nun kann die Konfiguration getestet werden. Eine Möglichkeit ist es, direkt über ssmtp eine E-Mail zu versenden. Der folgende Befehl schickt eine leere Mail an echo@tu-berlin.de, die daraufhin an euch zurückgesendet wird. So könnt ihr überprüfen, ob die Einstellungen korrekt sind. Mit dem Schalter -v werden außerdem Rückmeldungen im Terminal angezeigt. Nach dem Ausführen des Befehls müsst ihr noch Strg+D drücken, um die E-Mail zu senden.
$ ssmtp -v echo@tu-berlin.de
[<-] 220 smtp.gmail.com ESMTP x65sm8488142wmg.4 - gsmtp [->] EHLO EIN.BEISPIEL@gmail.com
[<-] 250 SMTPUTF8 [->] STARTTLS
[<-] 220 2.0.0 Ready to start TLS [->] EHLO EIN.BEISPIEL@gmail.com
[<-] 250 SMTPUTF8 [->] AUTH LOGIN
[<-] 334 ############# [->] ##########
[<-] 334 #########
[<-] 235 2.7.0 Accepted [->] MAIL FROM:<EIN.BEISPIEL@gmail.com>
[<-] 250 2.1.0 OK ########### - gsmtp [->] RCPT TO:<echo@tu-berlin.de>
[<-] 250 2.1.5 OK x65s########### - gsmtp [->] DATA
[<-] 354 Go ahead ############# - gsmtp [->] Received: by EIN.BEISPIEL@gmail.com (sSMTP sendmail emulation); Thu, 11 Feb 2016 16:34:00 +0100
[->] From: "USERNAME" <EIN.BEISPIEL@gmail.com>
[->] Date: Thu, 11 Feb 2016 16:34:00 +0100
[->]
[->] .
[<-] 250 2.0.0 OK 1455204843 ########### - gsmtp [->] QUIT
[<-] 221 2.0.0 closing connection ########### - gsmtp
Alternativ könntet ihr auch mit mutt oder mailx vollständige E-Mails versenden. ssmtp ersetzt natürlich keinen vollständig eingerichteten Postfix-Dienst auf einem richtigen Server. Doch wenn es darum geht, dass eine Workstation zu Hause lediglich ein paar Status-Mails versenden soll, ist ssmtp ein praktisches und einfaches Werkzeug.






Schreibe einen Kommentar