E-Mails per FHEM verschicken

Das Benachrichtigen bei bestimmten Ereignissen ist eine wichtige Funktion bei einer Hausautomatisierung. Oft werden Push-Notifications wie Pushover oder Messengerdienste wie Telegramm verwendet. Eine weitere Möglichkeit bietet aber auch die bewährte E-Mail. In diesem Beitrag möchte ich euch zeigen, wie ihr mit FHEM E-Mails versenden könnt.

Vorbereitungen

Das Versenden der E-Mails erfolgt nicht direkt von FHEM, sondern von einem E-Mail-Server, welcher auf dem Host-System installiert wird. In unserem Fall also auf dem Raspberry. 

sudo apt-get install sendEmail libio-socket-ssl-perl libnet-ssleay-perl perl

Je nach installierte Betriebssystem-Version lautet der Befehl eventuell wie folgt. 

sudo apt-get install sendemail libio-socket-ssl-perl libnet-ssleay-perl perl

Die Vorbereitungen auf dem Host-System sind nun abgeschlossen.

Einrichtung in FHEM

Die Einrichtung in FHEM ist relativ simpel. Zum Versenden einer E-Mail wird eine Subroutine erstellt. Wie und wo ihr eine Subroutine erstellt könnt ihr auf meinem Blogbeitrag nachlesen

######## DebianMail  Mail auf dem RPi versenden ############ 
sub
DebianMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $attach = shift;
my $ret = "";
my $sender = "absender\@account.de";
my $konto = "kontoname\@account.de";
my $passwrd = "passwrd";
my $provider = "smtp.provider.de:587";
Log 1, "sendEmail RCP: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";
Log 1, "sendEmail Anhang: $attach";

$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -a $attach -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=auto -o message-charset=utf-8);
$ret =~ s,[\r\n]*,,g; # remove CR from return-string
Log 1, "sendEmail returned: $ret";
}

Die Fett geschriebenen Passagen müsst ihr entsprechend mit euren Daten ersetzen. Bei Angabe der E-Mail-Adresse ist wichtig, dass ihr den Backslash beibehaltet. Ansonsten wird das @-Zeichen als Steuerzeichen interpretiert. 

Im obigen Fall wird TSL als Verschlüsselung eingesetzt. Wollte ihr keine Verschlüsselung einsetzen, so muss "tsl=0" gesetzt werden und der Port auf 25 geändert werden. 

Subroutine verwenden

Die erstellte Subroutine kann nun verwendet werden um eine E-Mail zu senden. Sei es in Notifys, at-Devices oder in anderen Routinen. 

{DebianMail("admin\@waschto.domain","Betreff","Text","'Anhang1' 'Anhang2' ...")}

Auch hier ist wieder der Backslash wichtig. Alternativ können einfache Anführungszeichen verwenden

{DebianMail('admin@waschto.eu','Betreff','Test')}

Bei Dateinamen für die Anhänge ist es wichtig, die einfachen Anführungszeichen zu verwenden. Dies erlaubt Dateipfade mit Leerzeichen.

Mehr Infos zum Senden von E-Mails über FHEM könnt ihr im FHEM-Forum nachlesen.

Beispiel

In einem meiner Blogbeiträgen habe ich erklärt, wie man sich eine Pushnachricht auf das Handy schicken kann, sobald ein Anruf eingeht. Dies im Zusammenhang erstellte Notify kann nun angepasst werden, dass eine E-Mail anstelle einer Push-Nachricht gesendet wird.

Dazu wird das Notify wie folgt definiert:

define notifyPushAnruf notify CallMonitor:event:.ring {my $name=(ReadingsVal("CallMonitor","external_name",0));my $nummer=(ReadingsVal("CallMonitor","external_number",0));my $ziel=(ReadingsVal("CallMonitor","internal_number",0));DebianMail('admin@waschto.eu','Anruf von '.$name, $name.' ('.$nummer.') ruft auf folgender Nummer an '.$ziel)}

Um als E-Mail-Text Variablen verwenden zu können, müssen diese entsprechend eingebunden werden.

DebianMail('admin@waschto.eu','Anruf von '.$name, $name.' ('.$nummer.') ruft auf folgender Nummer an '.$ziel)

Wie man erkennt, wird der normale Text in einfachen Anführungszeichen gesetzt. Die Variablen außerhalb dieser Anführungszeichen. Zusätzlich wird der einfache Text-String und die Variable durch einen Punkt verbunden. 

Siehe Betreff:

'Anruf von '.$name

Siehe E-Mail-Text:

$name.' ('.$nummer.') ruft auf folgender Nummer an '.$ziel

Wie ihr sieht, das Senden von E-Mails über FHEM ist relativ einfach eingerichtet und erweitert eure Möglichkeiten zum Senden von Benachrichtigungen um eine weitere. Ich hoffe ich konnte die Einrichtung verständlich erklären und freue mich, wenn ihr weiter meine Blogbeiträge verfolgt.

Hinterlasse einen Kommentar

avatar
Fotos und Bilder
 
 
 
sonstiges Dateiformat
 
 
 
  Subscribe  
Benachrichtige mich zu: