GithubHelp home page GithubHelp logo

imbox's Introduction

Imbox - Python IMAP for Humans

Python library for reading IMAP mailboxes and converting email content to machine readable data

Installation

pip install imbox

or

git clone [email protected]:wckd/imbox.git
python setup.py install

Usage

from imbox import Imbox

imbox = Imbox('imap.gmail.com',
			  username='username', 
			  password='password',
			  ssl=True)

# Gets all messages 
all_messages = imbox.messages()

# Unread messages 
unread_messages = imbox.messages(unread=True)

# Messages sent FROM
messages_from = imbox.messages(sent_from='[email protected]')

# Messages sent TO
messages_from = imbox.messages(sent_to='[email protected]')

# 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 from a specific folder 
messages_folder = imbox.messages(folder='Social')

# Get messages in read-only mode
messages_folder = inbox.messages(folder='Social', readonly=True)

# Get all messages in all folders
from imbox import Imbox

imbox = Imbox('imap.gmail.com',
              username=username,
              password=password,
              ssl=True)

boxlist = []
rc = imbox.connection.list()[1]
derp = [boxlist.append(rc[item].partition('"/"')[2].strip()) for item in range(len(rc))]

for box in boxlist:
    messages = imbox.messages(folder=box, readonly=True)
    for message in messages:
        message = message[1]
        print message.subject.encode('utf-8')
        print message.cc # Returns None if empty


# Get all messages in selected folder
for message in all_messages:
	........
# Every message is an object with the following keys

    message = message[1]
	message.sent_from
	message.sent_to
	message.subject
	message.headers
	message.message_id
	message.date
	message.body['plain']
	message.body['html']
	message.attachments
    message.rfc822
    message.gmsgid
    message.gthrid
    message.flags

# To check all available keys
	print message.keys()


# To check the whole object, just write

	print message[1]

	{
	'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': '[email protected]'
	}],
	'sent_to': [{
		'name': u 'John Doe',
		'email': '[email protected]'
	}],
	'subject': u 'Hello John, How are you today'
	}

Roadmap

  • Lazy email fetching
  • Improved attachement handling
  • Search mailboxes
  • Manage labels
  • Delete emails
  • Compose emails

imbox's People

Contributors

martinrusev avatar shanzi avatar dveselov avatar wckd avatar willperkins avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.