Guest User

Untitled

a guest
Jan 26th, 2018
345
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. import email, email.header, datetime, imaplib, re, sys
  4.  
  5. host = 'imap.gmail.com'
  6. username = ''
  7. password = ''
  8. folder = 'INBOX'
  9.  
  10. def login(host, username, password):
  11. account = imaplib.IMAP4_SSL(host)
  12.  
  13. try:
  14. rv, data = account.login(username, password)
  15. except imaplib.IMAP4.error:
  16. print 'authentication failure'
  17. sys.exit(1)
  18.  
  19. return account
  20.  
  21. def selectFolder(account, folder):
  22. rv, mailboxes = account.list()
  23. rv, data = account.select(folder)
  24.  
  25. def letterCount(account):
  26. count = 0
  27.  
  28. today = datetime.datetime.today().strftime('%d-%b-%Y')
  29.  
  30. rv, data = account.search(None, '(FROM "USPS" SUBJECT "Informed Delivery Daily Digest" SINCE "' + today + '")')
  31. if rv == 'OK':
  32. for num in data[0].split():
  33. html = None
  34.  
  35. rv, data = account.fetch(num, '(RFC822)')
  36.  
  37. msg = email.message_from_string(data[0][1])
  38. if msg.is_multipart():
  39. for payload in msg.get_payload():
  40. if(payload.get_content_type() == 'text/html'):
  41. html = payload.get_payload(decode=True)
  42. else:
  43. html = msg.get_payload(decode=True)
  44.  
  45. if html != None:
  46. matches = re.findall('<img.*?alt="Scanned image of your mail piece".*?/>', html)
  47. count = len(matches)
  48.  
  49. return count
  50.  
  51. def packageCount(account):
  52. count = 0
  53.  
  54. today = datetime.datetime.today().strftime('%d-%b-%Y')
  55.  
  56. rv, data = account.search(None, '(FROM "auto-reply@usps.com" SUBJECT "Item Delivered" SINCE "' + today + '")')
  57. if rv == 'OK':
  58. count = len(data[0].split())
  59.  
  60. return count
  61.  
  62. account = login(host, username, password)
  63. selectFolder(account, folder)
  64.  
  65. if sys.argv[1] == 'letters':
  66. print letterCount(account)
  67. elif sys.argv[1] == 'packages':
  68. print packageCount(account)
  69. else:
  70. print "Unknown type: " + sys.argv[1]
Add Comment
Please, Sign In to add comment