E-Mails versenden mit sSMTP

Es gib immer mal wieder die Situation mit einem Linux System E-Mails zu versenden. Das können zu hohe Temperaturen der Festplatte, störungen von Cronjob oder eine IP, die aufgrund von falschen Login versuchen auffällt. Natürlich ist dieser Service auch bei anderen Diensten wie FHEM interessant. 

Man könnte sich eine E-Mail senden lassen wenn ein bestimmter Bewegungsmelder aktiv wird.  Oder die Temperatur der Gefriertruhe steigt wegen einem defekt. Hier kann auch sSMTP einspringen und eine E-Mail versenden. Die Einsatzmöglichkeiten sind unglaublich vielfältig.

Und diese Möglichkeiten gibt es mit sSMTP mit relativ wenig Aufwand.

Installation von sSMTP

Wie immer, wer sein Linux liebt der updatet als erstes 🙂

apt-get update && apt-get upgrade -V

Nun kann man die beiden Pakete von sSMTP installieren

apt-get install ssmtp mailutils

Nun wird als erster Schritt die generelle Einrichtung von sSMTP vorgenommen

nano /etc/ssmtp/ssmtp.conf

Gebt in diesem File euer E-Mail Konto sowie die entsprechenden Ports eures E-Mail Anbieters an.

root=DEINE@EMAIL.DE
mailhub=DEIN-EMAIL.SERVER.DE:PORT(ist bei jedem Anbieter anders!)
hostname=localhost
UseTLS=Yes
UseSTARTTLS=Yes
AuthUser=DEIN-EMAIL-LOGIN-BENUTZER
AuthPass=DEIN-EMAIL-PASSWORT
FromLineOverride=yes

Wer mehr zu den einzelnen Eintragen wissen möchte kann sich gerne mal die man von sSMTP ansehen.  Linux versteht man nur durch lesen :).

man ssmtp

Nun müssen wir Linux nur noch mitteilen welche Benutzer eigentlich sSMTP nutzen dürfen.

Dazu öffnen wir das Benutzer File des sSMTP

nano /etc/ssmtp/revaliases

In diesem File müssen alle Benutzer des jeweiligen Linux System eingetragen werden die gerne eine Email versenden möchten. Bitte achtet drauf auch hier die richtigen PORTs mit anzugeben.

root:DEINE@EMAIL-ADRESSE.DE:smtp.EMAIL-ADRESSE.de:587 (Je nach Anbeiter)
www-data:WWW-USER@SEINE-EMAIL.DE:smtp.IRGENDWAS.DE:PORT

Zum Schluss schicken wir nun mal eine Test E-Mail 😀

echo "Mail-Inhalt" | mail -s "Betreff" EMAIL@AN-DIE-GESENDET-WERDEN-SOLL.DE

So das waren die Grundlagen. Nun ist dein Linux System in der Lage E-Mails zu versenden. War ja eigentlich gar nicht so viel Aufwand!

BASH Scripting

Inhaltsverzeichnis

Bevor man die ersten BASH Scripte erstellt sollte man sich die Position von BASH ausgeben lassen. Das geht mit folgendem Befehl.

which bash

Die erste Zeile eines BASH Scripts

Damit das Betriebssystem bei Programmstart alle Interpreten zuweisen kann, wird in der ersten Zeile der Pfad zum BASH Interpreter angegeben. Diese Angabe ist kein Teil des Scriptes. Muss aber angegeben werden.

#!/bin/bash

Kommentare – kann es nie zu wenig geben

Um die Funktion und Arbeitsweise eines Scripts zu erläutern ist es immer Sinnvoll Kommentare anzugeben.  Bei BASH werden alle Zeichen die in einer Zeile auf ein # folgen ignoriert.

# Das waere die erste Kommentarzeile
# 2. Zeile die vom Interpreter uebersprungen wird.


Variablen

Wie in jeder Programmiersprache bietet auch BASH die Möglichkeit Variablen anzulegen. Diese dienen auch bei BASH dazu werte später immer wieder zu verwenden.
Um im Script eine Variable verwenden zu können muss diese nicht extra deklariert werden. Im Allgemeinen reicht es direkt einen Wert zuzuweisen.

NeueVAR = Test

Die Verwendung derVariablen erfolgt im Script mit einem $.

BASH Grundlagen für Anfänger

Inhaltsverzeichnis

BASH

Unter BASH (für Bourne-again shell) versteht man eine GNU/LINUX standart Shell. Sie ist die ursprüngliche Unix Shell.

SHELL

Die Shell ist die traditionelle Schnittstelle zwischen User und Betriebssystem. 

Sollten Sie die obigen Begriffe noch nicht wirklich verstanden haben, kein Problem. Mit den ersten Beispielen wird so einiges klar werden. Genau aus diesem Grund versuche ich hier ein paar Grundlagen zu erklären.

Wahrscheinlich sitzen Sie gerade vor Ihrem Computer und haben mit der Tastenkombination“STRG + ALT + T“ ein Terminalfenster geöffnet. Nun fragen Sie sich was Sie mit diesem Ding sollen?

Genau dieses Terminalfenster enthält die Shell Ihres Linux System. Hier haben Sie nun die Möglichkeit mit Ihrem Computer per Befehl zu interagieren, Daten abzurufen oder komplexe Aufgaben zu erledigen.

Probieren Sie nun einfach ein paar Befehle aus:

  • date
  • cal
  • pwd
  • ls

alles gefolgt von einem „ENTER“.

Das waren nun die ersten Shell Befehle.  Sie haben mit date den aktuellen Tag abgerufen, per cal den Kalender angezeigt und mit pwd den aktuellen Arbeitspfad angezeigt und gelistet (ls).