Skip to content

Commit

Permalink
Merge pull request #92 from sblondon/master
Browse files Browse the repository at this point in the history
Imbox() usable as with statement
  • Loading branch information
martinrusev authored Sep 18, 2017
2 parents c63378d + 568dcb0 commit 5e2afc6
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 61 deletions.
122 changes: 61 additions & 61 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,88 +30,88 @@ Usage
# SSL Context docs https://docs.python.org/3/library/ssl.html#ssl.create_default_context
imbox = Imbox('imap.gmail.com',
with Imbox('imap.gmail.com',
username='username',
password='password',
ssl=True,
ssl_context=None)
ssl_context=None) as imbox:
# Gets all messages
all_messages = imbox.messages()
# Gets all messages
all_messages = imbox.messages()
# Unread messages
unread_messages = imbox.messages(unread=True)
# Unread messages
unread_messages = imbox.messages(unread=True)
# Messages sent FROM
messages_from = imbox.messages(sent_from='martin@amon.cx')
# Messages sent FROM
messages_from = imbox.messages(sent_from='martin@amon.cx')
# Messages sent TO
messages_from = imbox.messages(sent_to='martin@amon.cx')
# Messages sent TO
messages_from = imbox.messages(sent_to='martin@amon.cx')
# Messages received before specific date
messages_from = imbox.messages(date__lt='31-July-2013')
# Messages received before specific date
messages_from = imbox.messages(date__lt='31-July-2013')
# Messages received after specific date
messages_from = imbox.messages(date__gt='30-July-2013')
# Messages received after specific date
messages_from = imbox.messages(date__gt='30-July-2013')
# Messages from a specific folder
messages_folder = imbox.messages(folder='Social')
# Messages from a specific folder
messages_folder = imbox.messages(folder='Social')
for uid, message in all_messages:
# Every message is an object with the following keys
for uid, message in all_messages:
# Every message is an object with the following keys
message.sent_from
message.sent_to
message.subject
message.headers
message.message_id
message.date
message.body.plain
message.body.html
message.attachments
message.sent_from
message.sent_to
message.subject
message.headers
message.message_id
message.date
message.body.plain
message.body.html
message.attachments
# To check all available keys
print(message.keys())
# To check all available keys
print(message.keys())
# To check the whole object, just write
# To check the whole object, just write
print(message)
print(message)
{
'headers':
[{
'Name': 'Received-SPF',
'Value': 'pass (google.com: domain of ......;'
},
{
'Name': 'MIME-Version',
'Value': '1.0'
'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.StringIO instance at 0x7f8e8445fa70>,
'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'
}],
'body': {
'plain': ['ASCII'],
'html': ['HTML BODY']
},
'attachments': [{
'content': <StringIO.StringIO instance at 0x7f8e8445fa70>,
'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'
}
'subject': u 'Hello John, How are you today'
}
`Changelog <https://github.com/martinrusev/imbox/blob/master/CHANGELOG.md>`_
6 changes: 6 additions & 0 deletions imbox/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,12 @@ def __init__(self, hostname, username=None, password=None, ssl=True,
logger.info("Connected to IMAP Server with user {username} on {hostname}{ssl}".format(
hostname=hostname, username=username, ssl=(" over SSL" if ssl else "")))

def __enter__(self):
return self

def __exit__(self, type, value, traceback):
self.logout()

def logout(self):
self.connection.close()
self.connection.logout()
Expand Down

0 comments on commit 5e2afc6

Please sign in to comment.