Raspberry PI Mails abrufen mit Python inkl GPIO LED Benachrichtigung

Alle 60 Sekunden mittels Python script im IMAP account nach neuen Mail suchen. Inkl. LED am GPIO. Benötigt die http://pymotw.com/2/imaplib/
Als Basic: Widerstand (Orange, Orange, Braun, Gold) an GPIO PIN 24 (bzw 25) anschließen, das Lange Ende der Diode an den Widerstand und das kurze Ende Richtung Ground (GND). Ich verwende den Pi T-Cobbler Breakout Kit für Raspberry Pi und das Arduino Sidekick Basic Kit - Arduino DIY Kit
ggf. auch Interessant: VNC für Raspberry PI für MAC aufsetzten - http://okco.de/code/bash/vnc-raspberry-pi-mac-aufsetzten

Like it? Share it!
#! /usr/bin/python # Das Script benötigt die IMAPLIB und TIME. Für POP3 wäre das POPLIB. Siehe http://docs.python.org/2/library/poplib.html # Googlemail verwendet IMAP address: imap.gmail.com und Port 993 username ist die volle Mailaddresse import imaplib, time import RPi.GPIO as GPIO GREEN_PIN = 25 RED_PIN = 24 class MailChecker: def __init__(self, server, port): # GPIO aufsetzen - siehe Konstanten für GREEN_PIN und RED_PIN müssen mit eurer Belegung übereinstimmen GPIO.setmode(GPIO.BCM) GPIO.setup(GREEN_PIN, GPIO.OUT) GPIO.setup(RED_PIN, GPIO.OUT) GPIO.setwarnings(False) # verbindung mit dem IMAP server - SSL versteht sich ;) try: self.m = imaplib.IMAP4_SSL(server, port) except: self.do_error("Server nicht erreichbar") def do_error(self, error): print(error) exit() def log_in(self, user, password): # Login mit mailaddresse und password try: self.m.login(user, password) except: self.do_error("Fehler: Login") def check_mail(self): type, data = 0, 0 # Inbox nach ungelesenen Mails durchsuchen. Kann weiter eingeschränkt werden z.B. '(FROM "Horst")' try: self.m.select() type, data = self.m.search(None, "UNSEEN") except: self.do_error("Ausnahme: Mailsabrufen") if type == "NO": self.do_error("Fehler: Mailsabrufen") self.report(data) def start_checking(self, interval): while True: self.check_mail() time.sleep(interval) def report(self, data): message_count = len(data[0].split()) if message_count > 0: print("Sie haben %i neue Mails" % message_count) GPIO.output(RED_PIN, GPIO.LOW) for i in range(1, 100): # Grüne LED Blinkt GPIO.output(GREEN_PIN, GPIO.LOW) time.sleep(.2) GPIO.output(GREEN_PIN, GPIO.HIGH) time.sleep(.2) else: print("Keine neuen Mails") GPIO.output(GREEN_PIN, GPIO.LOW) GPIO.output(RED_PIN, GPIO.HIGH) if __name__ == "__main__": user = "benutzer" password = "passwort" server = "serveradresse" port = 993 # oder welcher port auch immer relevant ist checker = MailChecker(server, port) checker.log_in(user, password) checker.start_checking(60)

>_ Author

>_ last updated 4 yearss ago

>_ Language: Python

imaplib Raspberry PI Mail