Guest User

Untitled

a guest
Jun 4th, 2017
595
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. import poplib
  3. from email import parser
  4. from email.header import decode_header
  5.  
  6. def pole(ml,s):
  7. ret = ''
  8. for i in range (0, len(decode_header(ml[s]))):
  9. if decode_header(ml[s])[i][1] is None:
  10. ret = ret + decode_header(ml[s])[i][0].encode('cp852')
  11. else:
  12. ret = ret + decode_header(ml[s])[i][0].decode(decode_header(ml[s])[i][1]).encode('cp852')
  13. ret = ret + ' '
  14. return ret
  15.  
  16. # dane do polaczenia:
  17. serwer_pop = 'pop3.wp.pl'
  18. haslo = 'ZAQ!@WSX'
  19.  
  20. #nawiazanie polaczenia
  21. pop = poplib.POP3_SSL(serwer_pop)
  22. pop.user(login)
  23. pop.pass_(haslo)
  24.  
  25. #pobranie informacji nt. ilosci wiadomosci w skrzynce oraz zajetego miejsca
  26. (iloscW, zajeteMiejsce) = pop.stat()
  27. print (u'\nIlosc wiadomosci w skrzynce: '.encode('cp852') + str(iloscW).encode('ascii') + '\n'.encode('ascii'))
  28.  
  29. #ile wiadomosci pobrac (poczynajac od najnowszej)
  30. ilePobrac = 1
  31.  
  32. #pobranie wiadomosci z serwera
  33. maile = [pop.retr(i) for i in range (iloscW-ilePobrac+1,iloscW+1)]
  34. pop.quit()
  35.  
  36. #konkatenacja wiadomosci
  37. maile = ["\n".encode('ascii').join(ml[1]) for ml in maile]
  38.  
  39. #przepuszczenie przez parser, ktory wypelnia odpowiednie pola w strukturze maila, tj.
  40. #pola nadawcy, adresata, tematu etc.
  41. maile = [parser.BytesHeaderParser().parse(ml) for ml in maile]
  42.  
  43. #wypisanie wiadomoĊ›ci
  44. print ('Najnowsze ' + str(ilePobrac) + u' wiadomosci:'.encode('cp852') + '\n')
  45. for ml in maile:
  46. print ('Date: ' + pole(ml,'Date'))
  47. print ('From: ' + pole(ml,'From'))
  48. print ('To: ' + pole(ml,'To'))
  49. print ('Subject: ' + pole(ml,'Subject') + '\n')
  50. for part in ml.walk():
  51. if part.get_content_maintype() == 'multipart':
  52. continue
  53. if part.get_content_type() == 'text/plain':
  54. if part.get_content_charset() is None:
  55. print (part.get_payload(decode=True).encode('cp852'))
  56. else:
  57. print (part.get_payload(decode=True).decode(part.get_content_charset()).encode('cp852'))
  58. else:
  59. print ('< ' + part.get_content_type() + ' >')
  60. print ('\n\n')
Advertisement
Add Comment
Please, Sign In to add comment