FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: holgerk am 11 Juni 2015, 12:48:33

Titel: Simples Email-Senden via Python-Script (Raspberry Pi)
Beitrag von: holgerk am 11 Juni 2015, 12:48:33
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');;}
Titel: Antw:Simples Email-Senden via Python-Script (Raspberry Pi)
Beitrag von: mfeske am 30 Juni 2015, 20:52:07
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
Titel: Antw:Simples Email-Senden via Python-Script (Raspberry Pi)
Beitrag von: holgerk am 01 Juli 2015, 10:21:11
Hallo Micha,
natürlich musst du Python (aus Repository) installiert haben ;)

Die Dateirechte sind 700 für mailFHEM.py (-rwx------),
der User ist fhem.