Linux & Co.Office & Business

Mail-Versand im Linux-Terminal via Google-Konto

Emails lassen sich ziemlich einfach auf der Kommandozeile versenden - auch ohne komplexe Software.

Manchmal sollen Skripte oder Überwachungsprogramme Mails verschicken, zum Beispiel, wenn etwas Aufregendes passiert. Die können natürlich nicht mal eben Thunderbird aufrufen oder Gmail im Browser benutzen. Hier muss der Versand über einen schlichten Befehl klappen. Aber auch der manuelle Versand hat seinen Reiz – weil es so simpel ist. Ihr braucht dafür keinen komplexen Emailserver, sondern könnt einfach ein bestehendes Email-Konto verwenden, zum Beispiel von Gmail.

Kein Emailserver

Normalerweise übernimmt das Empfangen, Verarbeiten und Senden von Emails ein komplexes Programm wie sendmail. So ein Mailserver macht aber eine Menge Arbeit bezüglich Konfiguration, Domain, Spam und so weiter. ssmtp ist hingegen ein äußerst simpel gestrickter Mail Transfer Agent (MTA), der nur eine einzige Aufgabe hat: Mails an einen echten Mailserver für den Versand weiterleiten, und zwar über das Simple Mail Transfer Protocol (SMTP).

In der Praxis heißt das: Ihr gebt dem Programm Adresse und Zugangsdaten Eures ganz normalen Email-Kontos, sei es nun bei Google, Web.de, GMX oder AOL oder was auch immer, und übergebt Mail-Empfänger und -Inhalt direkt auf der Kommandozeile. Oder ein Skript/Programm triggert den Versand.

Nützlich ist das aber auch abseits von Skripten und Monitoring-Software wie Checkmk: Ihr könnt mailen, wenn schlicht keine Desktop-Umgebung verfügbar ist (etwa von einem Raspberry Pi im Netz), müsst Euch nicht einloggen oder Programme öffnen, die Inhalte von Dateien oder Ausgaben von Befehlen senden und der Versand von Dateien oder kurzen Nachrichten geht einfach schneller.

screenshot
Von der Kommandozeile nach Thunderbird mit ssmtp und mail.

ssmtp einrichten

Die Installation unter Ubuntu, Debian, Mint und so weiter läuft direkt über die Paketquellen, anschließend muss noch ein wenig mit den Rechten hantiert werden. Neben ssmtp selbst müsst Ihr teils auch noch das Programm mailutils (Mail Werkzeuge) installieren, über das Ihr mit ssmtp agiert. Folgendes mit Root-Rechten ausführen:

apt-get install ssmtp mailutils
chmod 640 /etc/ssmtp/ssmtp.conf
adduser peter mail
chown root:mail /etc/ssmtp/ssmtp.conf

Zunächst installiert Ihr also ssmtp und mailutils über apt, setzt dann die Rechte der Konfigurationsdatei ssmtp.conf auf 640 per chmod, fügt den Nutzer peter der Gruppe mail via adduser hinzu und ändert letztlich Besitzer und Gruppe der Konfigurationsdatei. In dieser Datei liegt Euer Passwort für das Mail-Konto im Klartext und die 0 bei den Rechten sorgt dafür, dass andere sie nicht schreiben, ausführen oder auch nur lesen können. Mehr zu Linux-Rechten haben wir hier.

Nun müsst Ihr die Konfigurationsdatei anpassen – ersetzt einfach den kompletten Inhalt:

mailhub=smtp.gmail.com:465
AuthUser=MisterSupergutUndSeinKind@gmail.com
AuthPass=MeinSuperTollesPasswort
UseTLS=YES

Das ist eine Minimalkonfiguration, die lediglich die Zugangsdaten benötigt sowie die Anweisung, TLS zu verwenden, sprich eine verschlüsselte Verbindung.

ssmtp nutzen

Witzigerweise werdet Ihr den Befehl ssmtp gar nicht brauchen, alles läuft über das Tool mail aus dem Paket mailutils:

echo "Hallo Welt!" | mail -s "Dies ist der Betreff-Text" franz@example.com

Der Inhalt kommt hier also aus dem echo-Befehl und der Betreff wird per -s angegeben, der oder die Empfänger folgen dann am Ende. Das mail-Kommando würde auch ohne echo-Eingabe funktionieren: Ihr könnt dann den Inhalt der Mail eingeben und wenn Ihr fertig seid, die Eingabe mit STRG+D beenden. Oder natürlich auch:

cat mein-toller-text.txt | mail -s blablabla franz@example.com
ls /home/peter/arbeitsverzeichnis | mail -s blablabla franz@example.com
./mein-skript.sh | mail -s blablabla franz@example.com

Und so weiter. Und auch das Anhängen einer Datei ist entsprechend simpel. Wenn Ihr zum Beispiel alle TXT-Dateien im aktuellen Ordner als Archiv verschicken wollt:

tar -czf mein-archiv.tar *.txt
echo "Ein paar Dateien im Anhang." | mail -s Textdateien -A mein-archiv.tar franz@example

Wenn Ihr diese zwei Zeilen irgendwann mal in- und auswändig kennt, sie ins motorische Gedächtnis übergegangen sind, dann geht das garantiert schneller als der gewohnte Windows-, oder sagen wir Desktop-Weg:

TXT-Dateien markieren
Über Kontextmenü in ZIP packen
Felder des ZIP-Programms ausfüllen
Thunderbird öffnen
Neue Mail verfassen
ZIP-Datei per Drag&Drop hinzufügen
Abschicken anklicken
Thunderbird schließen

Ihr müsstet abwechselnd Tastatur und Maus nutzen, ein Speicher fressendes Thunderbird öffnen, das auch noch Mail-Konten und Updates abruft, und letztlich eine Menge Zeit verschwenden. Schickt Euch mal selbst eine Datei test und stoppt die Zeit – mit Eurem normalen Client. Und dann mit:

mail -s foobar -A test franz@example

Hier hat’s vielleicht drei Sekunden gebraucht ;)

Getreu der Unix-Philosophie, in der Variante von 1994 „Write programs that do one thing and do it well.“, erledigt ssmtp nur eine einzige Sache und das sehr gut.

Mehr zum Thema Linux haben wir hier, mehr zur Kommandozeile hier und wenn Ihr häufiger Hilfe im Terminal benötigt, schaut Euch unsere hauseigene Linux-Hilfe cli.help an.

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.help und VoltAmpereWatt.de. Neu: Mastodon

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Schaltfläche "Zurück zum Anfang"
Schließen

Ooopsi!

Bitte deaktiviere Deinen Adblocker.