System-Mails ohne einen Mail-Server mit ssmtp verschicken
10. September 2011
Es gibt Fälle, in denen soll das eigene Linux-System
Mails verschicken können. Ein Beispiel wäre etwa Cron, das im Fall von
Problemen Status-Mails verschicken kann. Oder man hat einen Webserver installiert, über den mittels der mail-Funktion von PHP Mails verschickt werden sollen usw., doch extra dafür schwere Brocken wie Postfix, Sendmail und Co. einzurichten wäre zu aufwändig. Noch dazu ist es für “Privatleute” ohne richtigen Server,
ohne ordentliche Zertifikate und ohne feste IPs sowieso nicht möglich
direkt Mails zu verschicken, da die meisten Mail-Server den Empfang von
solchen Servern sowieso ablehnen, sonst wäre ja SPAM-Versender Tür und
Tor geöffnet. Für den Privatmann gilt es daher eigene Mails an einen SMTP-Relay-Server weiterzuleiten (also den SMTP-Mailserver eines “ordentlichen” Anbieters) und dafür reicht auch ein simples Tool wie ssmtp.
ssmtp ist kein ausgewachsender MTA (Mail-Transfer-Agent) wie Postfix, Exim
oder eben Sendmail, sondern einfach nur ein kleines Tool das eine Mail
vom System entgegennimmt und zu einem zuvor konfigurierten Mailserver
weiterleitet. Wie eingangs gesagt, müsste man mit einem Heimserver einen
MTA wie Postfix sowieso als “Satellite System” konfigurieren und Mails
über einen Smarthost leiten, daher kann man sich den Aufwand mit der
Einrichtung des Dienstes gleich sparen. ssmtp will erst einmal aus den
Paketquellen installiert werden…
sudo apt-get install ssmtp
sudo gedit /etc/ssmtp/ssmtp.conf
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
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
mailhub=mail.gmx.net:465
rewriteDomain=gmx.net
hostname=gmx.net
UseTLS=YES
AuthUser=EIN.BEISPIEL@gmx.DE
AuthPass=GEHEIM
FromLineOverride=NO
Passt
die FETT geschriebenen Passagen bitte an eure Situation an, die
restlichen Einstellungen solltet ihr direkt übernehmen können. Sobald
ihr die ssmtp.conf vollständig eingerichtet habt, könnt ihr festlegen
welcher User welchen Mailserver benutzen darf. Dies wird über die
revaliases-Datei festgelegt, öffnet auch diese daher wieder in einen Editor.
sudo nano /etc/ssmtp/revaliases
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
www-data:EIN.BEISPIEL@gmail.com:smtp.gmail.com:587
OTTO:EIN.BEISPIEL@gmail.com:smtp.gmail.com:587
In
meinem Fall darf also “root”, der User des Webservers “www-data” und
der Benutzer “otto” Mails direkt vom System aus verschicken. Die zweite
Zeile könnt ihr natürlich weglassen, wenn bei euch gar kein Webserver
installiert ist, oder dieser gar keinen Zugriff auf ssmtp braucht.
Das
Ganze will natürlich nun auch getestet werden. Eine Möglichkeit ist es
direkt über ssmtp eine Mail zu schicken. Der folgende Befehl schickt
etwa eine leere Mail an echo@tu-berlin.de, das diese wiederum gleich
wieder zurück zu euch schickt. So könnt ihr bequem testen, ob eure
Einstellungen funktioniert haben. Zudem bewirkt der Schalter “-v”, dass
bei der Aktion Rückgaben ins Terminal geschrieben werden.
ssmtp -v echo@tu-berlin.de
Alternativ
könntet ihr natürlich auch via mutt oder mailx direkt vollständige
Mails verschicken. ssmtp ersetzt sicherlich nicht einen ordentlich
aufgesetzten Postfix-Dienst auf einem richtigen Server, doch wenn die
eigenen Workstation zuhause einfach nur in der Lage sein soll ein paar
Status-Mails in Netz zu senden, dann ist ssmtp ein ganz praktisches
Werkzeug.
Keine Kommentare:
Kommentar veröffentlichen
comments are moderated, to prevent spam and trolls: