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 a clean REST API. See the [docs] (src/inbox/docs) 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 running on your local machine:
-
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
-
cp config-sample.cfg config.cfg
to setup a default configuration file. -
sudo ./setup.sh
to install dependencies and create databases. -
bin/inbox-start
And voilà! Auth an account via the commandline and start syncing:
bin/inbox-auth ben.bitdiddle1861@gmail.com
bin/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 also hang out in ##inbox
on irc.freenode.net
. (Be patient,
IRC is not our primary dev channel.)
Please sign the Contributor License Agreement before submitting patches. (It's extremely simliar to other projects, like NodeJS.)
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.
This code is free software, licensed under the The GNU Affero General Public License (AGPL).
See the LICENSE
file for more details.
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
.