Guest User

Untitled

a guest
Feb 13th, 2018
389
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. import poplib
  2. import email
  3. from base64 import b64decode
  4.  
  5. pop3_server = 'pop.gmail.com'
  6. pop3_port = '995'
  7. username = 'XXXXXXXXXX@gmail.com'
  8. password = 'XXXXXXXXXXXXXX'
  9.  
  10. M = poplib.POP3_SSL(pop3_server, pop3_port)
  11. M.user(username)
  12. M.pass_(password)
  13.  
  14. numMessages = len(M.list()[1])
  15.  
  16. def decode_header(header):
  17. decoded_bytes, charset = email.header.decode_header(header)[0]
  18. if charset is None:
  19. return str(decoded_bytes)
  20. else:
  21. return decoded_bytes.decode(charset)
  22.  
  23. for i in range(numMessages):
  24. raw_email = b"\n".join(M.retr(i+1)[1])
  25. parsed_email = email.message_from_bytes(raw_email)
  26. print('=========== email #%i ============' % i)
  27. print('From:', parsed_email['From'])
  28. print('To:', parsed_email['To'])
  29. print('Date:', parsed_email['Date'])
  30. print('Subject:', decode_header(parsed_email['Subject']))
  31. for part in parsed_email.walk():
  32. if part.is_multipart():
  33. # maybe need also parse all subparts
  34. continue
  35. elif part.get_content_maintype() == 'text':
  36. text = part.get_payload(decode=True).decode(part.get_content_charset())
  37. print('Text:\n', text)
  38. elif part.get_content_maintype() == 'application' and part.get_content_disposition() == 'attachment':
  39. name = decode_header(part.get_filename())
  40. body = part.get_payload(decode=True)
  41. size = len(body)
  42. print('Attachment: "{}", size: {} bytes, starts with: "{}"'.format(name, size, body[:50]))
  43. else:
  44. print('Unknown part:', part.get_content_type())
  45. print('======== email #%i ended =========' % i)
Add Comment
Please, Sign In to add comment