Mit sendmail Mails verschicken
Einleitung
Es ist möglich, mit Linux Mails direkt aus der Kommandozeile zu versenden. Administratoren oder Programmierer schicken sich damit häufig Statusmeldungen oder andere Nachrichten. Auf vielen Webseiten wird häufig dazu die PHP Funktion sendmail verwendet. Dazu brauchst du einen E-Mail-Account bei einem Provider deiner Wahl. Wenn der Mail-Server im gleichen Netz wie der Webserver steht, und keine Kommunikation über das Internet erfolgen muss, kann bei richtiger Kommunikation ohne einen E-Mail-Account, eine E-Mail versendet werden.
sendmail gilt als veraltet und sollte dementsprechend mit Bedacht verwendet werden.
Voraussetzungen
Um jetzt E-Mails mit sendmail über das Internet zu versenden, benötigst du folgende Informationen zu deinem E-Mail-Account:
- SMTP-Adresse
- SMTP-Port
- Login Daten (Benutzername und Kennwort)
E-Mail versenden
Wenn du E-Mails versenden möchtest, kannst du das über unterschiedliche Möglichkeiten machen. Alle gehen direkt von der Kommandozeile aus. Du musst also keine GUI oder sonstige Web Oberfläche öffnen.
Du benötigst, um E-Mails zu versenden das Paket ssmtp. Dieses können wir einfach nachinstallieren.
sudo apt install ssmtp -y
E-Mail nur mit Betreff
echo "Subject: Test E-Mail" | sendmail mail@pc-wiki.de
E-Mail aus Datei lesen
Zuerst legen wir eine Datei an, in dem sich der E-Mail Inhalt befindet.
nano email.txt
In dieser Textdatei fügst du den Text ein, den du gerne versenden möchtest. Den Betreff, E-Mail-Adressen und den Nachrichtentext kannst du natürlich gerne ändern. Wichtig ist, dass die Struktur so bestehen bleibt.
Cc: mail@phil-un.de
Subject: E-Mail aus Datei
From: server@pc-wiki.de
Content-Type: text/html; charset="utf8"
<html>
<body>
<div style="
background-color:
#abcdef; width: 300px;
height: 300px;
">
</div>
<h1>Status Meldung</h1>
<p>Die E-Mails werden erfolgreich vom Server versendet!</p>
</body>
</html>
Zum Schluss müssen wir nur noch die E-Mail versenden. Dort kannst du den Empfänger natürlich wieder anpassen.
sendmail mail@pc-wiki.de < mail.txt
E-Mail über STMP Server versenden
Wenn du E-Mails über den SMTP Server versenden möchtest, um z.B. E-Mails über einen E-Mailserver zu versenden. Musst du die Logindaten in einer Konfigurationsdatei angeben. Öffne zuerst die Konfigurationsdatei
sudo nano /etc/ssmtp/ssmtp.conf
Dort fügst du folgenden Code ein. Die Logindaten sowie den Mail-Server musst du noch anpassen.
UseSTARTTLS=YES
root=server@phil-un.de
mailhub=mail.server.de:587
AuthUser=<server>
AuthPass=<Pa$$w0rd>
Und nun versendest du eine E-Mail mit dem folgenden Befehl
ssmtp mail@pc-wiki.de < mail.txt
Wenn eine Fehlermeldung erscheint, kannst du diese nutzen um den Fehler zu finden.
Beispiel: ssmtp: Authorization failed