Skip to content

Instantly share code, notes, and snippets.

@ladyada
Created July 6, 2012 19:16
Show Gist options
  • Save ladyada/3062225 to your computer and use it in GitHub Desktop.
Save ladyada/3062225 to your computer and use it in GitHub Desktop.
Raspberry Pi LED E-mail Notifier
cat <<! > raspi-gmail.py
#!/usr/bin/env python
import RPi.GPIO as GPIO, feedparser, time
DEBUG = 1
USERNAME = "username" # just the part before the @ sign, add yours here
PASSWORD = "password"
NEWMAIL_OFFSET = 1 # my unread messages never goes to zero, yours might
MAIL_CHECK_FREQ = 60 # check mail every 60 seconds
GPIO.setmode(GPIO.BCM)
GREEN_LED = 18
RED_LED = 23
GPIO.setup(GREEN_LED, GPIO.OUT)
GPIO.setup(RED_LED, GPIO.OUT)
while True:
newmails = int(feedparser.parse("https://" + USERNAME + ":" + PASSWORD +"@mail.google.com/gmail/feed/atom")["feed"]["fullcount"])
if DEBUG:
print "You have", newmails, "new emails!"
if newmails > NEWMAIL_OFFSET:
GPIO.output(GREEN_LED, True)
GPIO.output(RED_LED, False)
else:
GPIO.output(GREEN_LED, False)
GPIO.output(RED_LED, True)
time.sleep(MAIL_CHECK_FREQ)
!
@Smuuch
Copy link

Smuuch commented Feb 18, 2014

Hi guys,

May I kindly ask what would be the python script like if I would only want to use a single LED(green) for first incoming email and allow it to stay on until the second new email comes in? In a nutshell, the new email turns the led on, second email turn it off and the next turn it on and so forth, emails that are read should not be considered in this. Any help will be highly appreciated.

@egocks
Copy link

egocks commented Aug 11, 2014

I wrote a version that uses imaplib, since there seems to be a problem with authentication for the Gmail atom feed. https://gist.github.com/egocks/e32f320af67edfbc0619#file-raspi-gmail-imaplib-py

@tushar121121
Copy link

i am new to Pi 2 ...for this project no need to install anything like "imapclient" ???

please respond

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment