Sprawdzanie nowej poczty Gmail w pythonie przy użyciu imap

Data publikacji: 2013-04-15 | Tagi:

Do różnego rodzaju "powiadamiaczy" (widgetów, mailerów, smserów) często potrzebujemy informacji o nowej poczcie. W takich wypadkach zbędne jest pobieranie całej treści poczty - wystarczy informacja, że taka poczta oczekuje i ewentualnie ilość nowych wiadomości.

Poniżej przedstawiam rótki skrypt, który przy pomocy imap loguje się do serwera gmail i sprawdza ilość nowej poczty (przy założeniu, że podajemy odpowiednie dane ;)).

#!/usr/bin/python
import imaplib


imap_port = 993
imap_server = "imap.gmail.com"
imap_login = "jak_kowalski@gmail.com"
imap_password = "haslo_kowalskiego"

m = imaplib.IMAP4_SSL(imap_server, imap_port)
m.login(imap_login, imap_password)

status, counts = m.status("Inbox", "(MESSAGES UNSEEN)")

unread = counts[0].split()[4][:-1]
print "Number of unreaded emails: %s" % int(unread)

m.logout()

Nie sprawdzałem niestety skryptu z innymi serwerami, ale nie widzę powodu, dla którego nie miałby działać. Na pewno należy wziąć pod uwagę to, że gmail przyjmuje cały adres e-mail jako login, natomiast inne serwery pocztowe mogą żądać jedynie nazwy użytkownika.

Skrypt nie jest idiotoodporny, zatem nie sprawdza czy się połączył i jak się połączył - próbuje jedynie wyłuskać ilość nowych wiadomości. Aby go uodpornić na złe dane dostępowe, błędy sieci itp. trzebaby go porządnie rozbudować, ale jako, że jest to rodzaj przydatnej pchełki - nie wgłębiałem się tak mocno i postawiłem na uzyskanie maksymalnego efektu minimalnym kosztem.


Oceń ten post:
Podziel się:

comments powered by Disqus

IT w obrazkach: