Inbox is a set of tools to make it simple and quick to develop apps and services on top of email. It consists of:
- IMAP sync engine
- Gmail OAuth authentication
- MIME parsing and decoding
- Full text search indexing
- Queryable metadata store
- Full message body storage including attachments
- All UTF-8 and JSON sanitized
- Contacts list sync
These features are exposed via clean APIs through ZeroRPC services. See the [/examples] (examples) folder for details.
You can run Inbox almost anywhere. We've successfully built images for Docker, VMware Fusion, VirtualBox, AWS, and DigitalOcean. The easiest way to get started is to install from source within VirtualBox.
Here's how to set up a development environment:
-
git clone git@github.com:inboxapp/inbox.git
-
cd inbox
-
vagrant up
Feel free to check out the
Vagrantfile
while this starts up. It creates a host-only network for the VM at192.168.10.200
. -
vagrant ssh
At this point you should be SSH'd into a shiny new Ubuntu 12.04 VM. The
inbox
directory you started with should be synced to/vagrant
.If not, run
vagrant reload
andvagrant ssh
again. You should see the shared folder now. -
cd /vagrant
-
sudo ./setup.sh
to install dependencies and create databases. -
./inbox debug
And voilà! Auth an account via the commandline and start syncing:
./inbox auth ben.bitdiddle1861@gmail.com
./inbox sync start ben.bitdiddle1861@gmail.com
We'd love your help making Inbox better! Join the Google Group for project updates and feature discussion.
We try to stick with pep8 and the Google Python style guide.
For docstrings, we're using the numpy docstring conventions.
We also group module imports separated by blank lines, starting with Python standard library imports, followed by 3rd-party modules and then Inbox modules (relative and absolute). Within these general groups, we group to the author's preference of visual consistency.
You should do git config branch.master.rebase true
in the repo to keep your
history nice and clean. You can set this globally using git config --global branch.autosetuprebase remote
.