Advertisement
Guest User

Untitled

a guest
Sep 26th, 2013
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.01 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. import email
  3. import poplib
  4. import imaplib
  5. import datetime
  6.  
  7. class MailObject(object):
  8.     def __init__(self):
  9.         self.email_box_type = 'imap'
  10.         self.email_box_ssl =  True
  11.         self.email_box_port = 993
  12.         self.email_box_host = 'imap.gmail.com'
  13.         self.email_box_user = 'test'
  14.         self.email_box_pass = 'test_pass'
  15.         self.email_box_imap_folder = 'INBOX'
  16.  
  17.  
  18. def get_first_text_block(email_message_instance):
  19.     maintype = email_message_instance.get_content_maintype()
  20.     if maintype == 'multipart':
  21.         for part in email_message_instance.get_payload():
  22.             if part.get_content_maintype() == 'text':
  23.                 return part.get_payload()
  24.     elif maintype == 'text':
  25.         return email_message_instance.get_payload()
  26.  
  27. def process_mail(mb):
  28.     if mb.email_box_type == 'pop3':
  29.         if mb.email_box_ssl:
  30.             if not mb.email_box_port: mb.email_box_port = 995
  31.             server = poplib.POP3_SSL(mb.email_box_host, int(mb.email_box_port))
  32.         else:
  33.             if not mb.email_box_port: mb.email_box_port = 110
  34.             server = poplib.POP3(mb.email_box_host, int(mb.email_box_port))
  35.         server.getwelcome()
  36.         server.user(mb.email_box_user)
  37.         server.pass_(mb.email_box_pass)
  38.  
  39.         messagesInfo = server.list()[1]
  40.  
  41.         for msg in messagesInfo:
  42.             msgNum = msg.split(" ")[0]
  43.             msgSize = msg.split(" ")[1]
  44.             full_message = "\n".join(server.retr(msgNum)[1])
  45.  
  46.             # Do something with the message
  47.  
  48.             server.dele(msgNum)
  49.         server.quit()
  50.  
  51.     elif mb.email_box_type == 'imap':
  52.         if mb.email_box_ssl:
  53.             if not mb.email_box_port: mb.email_box_port = 993
  54.             server = imaplib.IMAP4_SSL(mb.email_box_host, int(mb.email_box_port))
  55.         else:
  56.             if not mb.email_box_port: mb.email_box_port = 143
  57.             server = imaplib.IMAP4(mb.email_box_host, int(mb.email_box_port))
  58.        
  59.         server.login(mb.email_box_user, mb.email_box_pass)
  60.         server.select(mb.email_box_imap_folder)
  61.         date = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%d-%b-%Y")
  62.         print date
  63.         status, data = server.uid('search', None, '(SENTSINCE {date})'.format(date=date))
  64.         for num in data[0].split():
  65.             status, data = server.fetch(num, '(RFC822)')
  66.             raw_message = data[0][1] if data[0] is not None else None
  67.            
  68.             print raw_message, data
  69.  
  70.             if not raw_message:
  71.                 continue
  72.  
  73.             email_message = email.message_from_string(raw_message)
  74.             print email_message
  75.             #print get_first_text_block(email_message)
  76.             # Do something with the message
  77.  
  78.             #server.store(num, '+FLAGS', '\\Deleted')
  79.        
  80.         server.expunge()
  81.         server.close()
  82.         server.logout()
  83.         print "Something already happened"
  84.  
  85. if __name__ == '__main__':
  86.     mb = MailObject()
  87.     process_mail(mb)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement