Simples Email-Senden via Python-Script (Raspberry Pi)

Begonnen von holgerk, 11 Juni 2015, 12:48:33

Vorheriges Thema - Nächstes Thema

holgerk

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');;}

mfeske

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 gestossen.

Gruß
Micha
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

holgerk

Hallo Micha,
natürlich musst du Python (aus Repository) installiert haben ;)

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