Script mailFHEM.py in /opt/fhem anlegen:
#! /usr/bin/python
######################################################
# Sends email from FHEM
#
# Parameter: recipient, subject, text
######################################################
import sys
import smtplib
def InpParams():
if len(sys.argv) > 1:
reci = sys.argv[1]
subj = sys.argv[2]
tex = sys.argv[3]
else:
reci = 'empf@email.com'
subj = 'FHEM Mail'
tex = 'Leider leer'
return (reci,subj,tex)
# Example gmail
SMTP_SERVER = 'smtp.gmail.com'
SMTP_PORT = 587
sender = 'FHEM Raspi'
(recipient,subject,text) = InpParams()
headers = ["From: " + sender,
"Subject: " + subject,
"To: " + recipient,
"MIME-Version: 1.0",
"Content-Type: text/html"]
headers = "\r\n".join(headers)
username = 'deinUser@name'
password = 'deinPasswort'
body = text + "\r\n"
server = smtplib.SMTP(SMTP_SERVER,SMTP_PORT)
server.ehlo()
server.starttls()
server.ehlo()
server.login(username,password)
server.sendmail(sender,recipient,headers + "\r\n\r\n" + body)
server.quit()
Berechtigung und User anlegen:
chown fhem mailFHEM.py
chmod 700 mailFHEM.py
In 99_myUtils.pm einfügen:
sub mailFHEM($$$)
{
my ($rcpt, $subject, $text) = @_;
Log 1, "send RCP: $rcpt";
Log 1, "send Subject: $subject";
Log 1, "send Text: $text";
system("/opt/fhem/mailFHEM.py $rcpt '$subject' '$text' &");
}
Testen mit
define Testmail at +00:01:00 { mailFHEM('empf@email.com','FHEM Test-Email','Email ist angekommen');;}
Hallo holgerk,
Danke für die Zeilen :-) Muss ich da vorher noch was anderes installieren ? Wie würdest Du den eine "Die Tür ist noch offen" Warnung realisieren. Ich hatte das mal angefangen, bin aber dann doch auf Probleme http://forum.fhem.de/index.php/topic,30972.msg235176.html#msg235176 (http://forum.fhem.de/index.php/topic,30972.msg235176.html#msg235176) gestossen.
Gruß
Micha
Hallo Micha,
natürlich musst du Python (aus Repository) installiert haben ;)
Die Dateirechte sind 700 für mailFHEM.py (-rwx------),
der User ist fhem.