Imbox() usable as with statement
This commit is contained in:
122
README.rst
122
README.rst
@@ -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
|
||||
}],
|
||||
'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'
|
||||
}
|
||||
'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'
|
||||
}
|
||||
|
||||
|
||||
`Changelog <https://github.com/martinrusev/imbox/blob/master/CHANGELOG.md>`_
|
||||
|
||||
@@ -21,6 +21,12 @@ class Imbox:
|
||||
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()
|
||||
|
||||
Reference in New Issue
Block a user