Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import poplib
- from email import parser
- from email.header import decode_header
- def pole(ml,s):
- ret = ''
- for i in range (0, len(decode_header(ml[s]))):
- if decode_header(ml[s])[i][1] is None:
- ret = ret + decode_header(ml[s])[i][0].encode('cp852')
- else:
- ret = ret + decode_header(ml[s])[i][0].decode(decode_header(ml[s])[i][1]).encode('cp852')
- ret = ret + ' '
- return ret
- # dane do polaczenia:
- serwer_pop = 'pop3.wp.pl'
- login = '[email protected]'
- haslo = 'ZAQ!@WSX'
- #nawiazanie polaczenia
- pop = poplib.POP3_SSL(serwer_pop)
- pop.user(login)
- pop.pass_(haslo)
- #pobranie informacji nt. ilosci wiadomosci w skrzynce oraz zajetego miejsca
- (iloscW, zajeteMiejsce) = pop.stat()
- print (u'\nIlosc wiadomosci w skrzynce: '.encode('cp852') + str(iloscW).encode('ascii') + '\n'.encode('ascii'))
- #ile wiadomosci pobrac (poczynajac od najnowszej)
- ilePobrac = 1
- #pobranie wiadomosci z serwera
- maile = [pop.retr(i) for i in range (iloscW-ilePobrac+1,iloscW+1)]
- pop.quit()
- #konkatenacja wiadomosci
- maile = ["\n".encode('ascii').join(ml[1]) for ml in maile]
- #przepuszczenie przez parser, ktory wypelnia odpowiednie pola w strukturze maila, tj.
- #pola nadawcy, adresata, tematu etc.
- maile = [parser.BytesHeaderParser().parse(ml) for ml in maile]
- #wypisanie wiadomoĊci
- print ('Najnowsze ' + str(ilePobrac) + u' wiadomosci:'.encode('cp852') + '\n')
- for ml in maile:
- print ('Date: ' + pole(ml,'Date'))
- print ('From: ' + pole(ml,'From'))
- print ('To: ' + pole(ml,'To'))
- print ('Subject: ' + pole(ml,'Subject') + '\n')
- for part in ml.walk():
- if part.get_content_maintype() == 'multipart':
- continue
- if part.get_content_type() == 'text/plain':
- if part.get_content_charset() is None:
- print (part.get_payload(decode=True).encode('cp852'))
- else:
- print (part.get_payload(decode=True).decode(part.get_content_charset()).encode('cp852'))
- else:
- print ('< ' + part.get_content_type() + ' >')
- print ('\n\n')
Advertisement
Add Comment
Please, Sign In to add comment