Dostęp do kont GMail z poziomu Pythona
12 December 2008
Comments
Ten artykuł został oznaczony jako przestarzały i zawarte w nim informacje mogą być już nieaktualne.
GMail to popularne skrzynki mailowe, dostępne także w różnych serwisach jak gazeta.pl, fotka.pl. Dostęp do tych kont nie różni się od dostępu do każdej innej skrzynki pocztowej, choć powstało kilka projektów zapewniających łatwiejszy dostęp do zgromadzonych tam danych.
libgmail umożliwia dostęp do konta GMail bez stosowania protokołu POP3 czy IMAP, lecz ma problemy z obsługą kont GMail w innych domenach. Oto prosty przykład:
import libgmail
ga = libgmail.GmailAccount("LOGIN", "HASŁO")
ga.login()
folder = ga.getMessagesByFolder('inbox')
for thread in folder:
print thread.id, len(thread), thread.subject
for msg in thread:
print " ", msg.id, msg.number, msg.subject
print msg.source
Dostępna w Pythonie biblioteki poplib może połączyć się z kontem GMAIL jeżeli włączona została na nim obsługa POP3:
import poplib
import email
M = poplib.POP3_SSL('pop.gmail.com')
M.user('LOGIN@DOMENA')
M.pass_('HASŁO')
numMessages = len(M.list()[1])
for i in range(numMessages):
print M.retr(i+1)[1]
import poplib
import email
M = poplib.POP3_SSL('pop.gmail.com')
M.user('LOGIN@DOMENA')
M.pass_('HASŁO')
numMessages = len(M.list()[1])
for i in range(numMessages):
z = '
'.join(M.retr(i+1)[1])
m = email.message_from_string(z)
# elementy wiadomości
at = m.get_payload()
for a in at:
try:
file = a.get_filename()
except:
pass
else:
print 'Załącznik %s' % file
# treść załącznika
print a.get_payload(decode=True)
Moduł Pythona imaplib także może zostać wykorzystany, wystarczy włączyć w GMAILu obsługę protokołu IMAP:
import imaplib
from re import findall
M = imaplib.IMAP4_SSL('imap.gmail.com')
M.login('LOGIN@DOMENA', 'HASLO')
M.select()
typ, data = M.search(None, 'ALL')
for num in data[0].split():
typ, data = M.fetch(num, '(RFC822)')
print 'Message %s
%s
' % (num, data[0][1])
M.close()
M.logout()
RkBlog
Comment article