# 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 Status Meldungen 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 Web Server 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. ```shell sudo apt install ssmtp -y ``` ##### E-Mail nur mit Betreff ```shell 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. ```shell 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 Nachrichten Text kannst du natürlich gerne ändern. Wichtig ist, das die Struktur so bestehen bleibt. ```HTML Cc: mail@phil-un.de Subject: E-Mail aus Datei From: server@pc-wiki.de Content-Type: text/html; charset="utf8"

Status Meldung

Die E-Mails werden erfolgreich vom Server versendet!

``` Zum Schluss müssen wir nur noch die E-Mail versenden. Dort kannst du den Empfänger natürlich wieder anpassen. ```shell 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-Mail Server zu versenden. Musst du die Login Daten in einer Konfigurationsdatei angeben. Öffne zuerst die Konfigurationsdatei ```shell sudo nano /etc/ssmtp/ssmtp.conf ``` Dort fügst du folgenden Code ein. Die Login Daten sowie den Mail Server musst du noch anpassen. ```YAML UseSTARTTLS=YES root=server@phil-un.de mailhub=mail.server.de:587 AuthUser= AuthPass= ``` Und nun versendest du eine E-Mail mit dem folgenden Befehl ```shell ssmtp mail@pc-wiki.de < mail.txt ```

Wenn eine Fehlermeldung erscheint, kannst du diese nutzen um den Fehler zu finden. **Beispiel:** `ssmtp: Authorization failed`