Package: imbox
Python library for reading IMAP mailboxes and converting email content to machine readable dataRequirementsPython (3.3, 3.4, 3.5, 3.6, 3.7)Installationpip install imboxUsagefromimboximportImbox# SSL Context docs https://docs.python.org/3/library/ssl.html#ssl.create_default_contextwithImbox('imap.gmail.com',username='username',password='password',ssl=True,ssl_context=None,starttls=False)asimbox:# Get all foldersstatus,folders_with_additional_info=imbox.folders()# Gets all messages from the inboxall_inbox_messages=imbox.messages()# Unread messagesunread_inbox_messages=imbox.messages(unread=True)# Flagged messagesinbox_flagged_messages=imbox.messages(flagged=True)# Un-flagged messagesinbox_unflagged_messages=imbox.messages(unflagged=True)# Flagged messagesflagged_messages=imbox.messages(flagged=True)# Un-flagged messagesunflagged_messages=imbox.messages(unflagged=True)# Messages sent FROMinbox_messages_from=imbox.messages(sent_from='sender@example.org')# Messages sent TOinbox_messages_to=imbox.messages(sent_to='receiver@example.org')# Messages received before specific dateinbox_messages_received_before=imbox.messages(date__lt=datetime.date(2018,7,31))# Messages received after specific dateinbox_messages_received_after=imbox.messages(date__gt=datetime.date(2018,7,30))# Messages received on a specific dateinbox_messages_received_on_date=imbox.messages(date__on=datetime.date(2018,7,30))# Messages whose subjects contain a stringinbox_messages_subject_christmas=imbox.messages(subject='Christmas')# Messages whose UID is greater than 1050inbox_messages_uids_greater_than_1050=imbox.messages(uid__range='1050:*')# Messages from a specific foldermessages_in_folder_social=imbox.messages(folder='Social')# Some of Gmail's IMAP Extensions are supported (label and raw):all_messages_with_an_attachment_from_martin=imbox.messages(folder='all',raw='from:martin@amon.cx has:attachment')all_messages_labeled_finance=imbox.messages(folder='all',label='finance')foruid,messageinall_inbox_messages:# Every message is an object with the following keysmessage.sent_frommessage.sent_tomessage.subjectmessage.headersmessage.message_idmessage.datemessage.body.plainmessage.body.htmlmessage.attachments# To check all available keysprint(message.keys())# To check the whole object, just writeprint(message){'headers':[{'Name':'Received-SPF','Value':'pass (google.com: domain of ......;'},{'Name':'MIME-Version','Value':'1.0'}],'body':{'plain':['ASCII'],'html':['HTML BODY']},'attachments':[{'content':<StringIO.StringIOinstanceat0x7f8e8445fa70>,'filename':"avatar.png",'content-type':'image/png','size':80264}],'date':u'Fri, 26 Jul 2013 10:56:26 +0300','message_id':u'51F22BAA.1040606','sent_from':[{'name':u'Martin Rusev','email':'martin@amon.cx'}],'sent_to':[{'name':u'John Doe','email':'john@gmail.com'}],'subject':u'Hello John, How are you today'}# With the message id, several actions on the message are available:# delete the messageimbox.delete(uid)# mark the message as readimbox.mark_seen(uid)ChangelogChangelogRunning the testsYou can run the imbox tests withtox.Requirements:the supported python versionstox. Tox is packaged in Debian and derivatives distributions.On Ubuntu, you can install several python versions with:sudoadd-apt-repositoryppa:deadsnakes/ppasudoaptupdatesudoaptinstallpython3.X