Read/sync your IMAP mailboxes [Python]
Python Shell Makefile
Switch branches/tags
Pull request Compare This branch is 172 commits behind OfflineIMAP:master.
Latest commit 91f13e9 Aug 2, 2016 @nicolas33 v7.0.4
Signed-off-by: Nicolas Sebrecht <>
Failed to load latest commit information.
.github github template: add system/distribution Jul 28, 2016
bin Convert to use OptionParser for command line handling. Dec 15, 2010
contrib make systemd service kill offlineimap as expected Jul 29, 2016
docs manual: add known issue about netrc Jul 28, 2016
offlineimap v7.0.4 Aug 2, 2016
scripts DNS of the website changed, reflect it Mar 21, 2015
test Change filter with lambda to list comprehension May 10, 2016
.gitignore Add tags to gitignore May 5, 2016 code of conduct: try to clarify what item 3 might mean Jul 12, 2016
CONTRIBUTING.rst update links to the new URL Feb 19, 2016
COPYING COPYING: fix unexpected characters Jan 15, 2015 v6.7.0.3 Jul 26, 2016 v7.0.4 Aug 2, 2016
MAINTAINERS.rst MAINTAINERS: update Feb 27, 2016 MANIFEST: exclude rfcs Feb 27, 2016
Makefile Really execute the recipe of the 'docs' target in top-most Makefile Mar 21, 2016 README: rename "Requirements" section to "Requirements & dependencies" Jun 17, 2016
TODO.rst update TODO.rst Nov 23, 2015
offlineimap.conf XOAUTH2: use one "public" attribute everywhere for self.oauth2_reques… Jul 28, 2016
offlineimap.conf.minimal Improve nametrans user documentation Feb 13, 2012 allow to run under python3 without special env Jun 3, 2016
requirements.txt move requirements.txt to the root directory Jun 7, 2016
setup.cfg pypi requires a setup.cfg when README is Markdown Feb 27, 2016 Add offlineimap.utils to the list of our modules Feb 5, 2013


"Get the emails where you need them."


OfflineIMAP is a software to dispose your e-mail mailbox(es) as a local Maildir. OfflineIMAP will synchronize both sides via IMAP.

The main downside about IMAP is that you have to trust your email provider to not lose your mails. This is not something impossible while not very common. With OfflineIMAP, you can download your Mailboxes and make you own backups of the Maildir.

This allows reading your email while offline without the need for the mail reader (MUA) to support IMAP disconnected operations. Need an attachment from a message without internet connection? It's fine, the message is still there.

Project status and future

As one of the maintainer of OfflineIMAP, I'd like to put my efforts into imapfw. imapfw is a software in development that I intend to replace OfflineIMAP in the long term.

That's why I'm not going to do development in OfflineIMAP. I continue to do the maintenance job in OfflineIMAP: fixing small bugs, (quick) reviewing/merging patches and rolling out new releases, but that's all.

While I keep tracking issues for OfflineIMAP, you should not expect support much from me anymore.

You won't be left at the side. OfflineIMAP's community is large enough so that you'll find people for most of your issues.

Get news from the blog.

                             Nicolas Sebrecht. ,-)


GNU General Public License v2.

Why should I use OfflineIMAP?

  • It is fast.
  • It is reliable.
  • It is flexible.
  • It is safe.


You should first check if your distribution already packages OfflineIMAP for you. Downloads releases as tarball or zipball.

Feedbacks and contributions

The user discussions, development, announcements and all the exciting stuff take place on the mailing list. While not mandatory to send emails, you can subscribe here.

Bugs, issues and contributions can be requested to both the mailing list or the official Github project.

The community

Requirements & dependencies

  • Python v2.7+
  • Python v3.4+ (experimental)
  • six (required)
  • imaplib2 >= 2.55 (optional)


All the current and updated documentation is at the community's website.

Read documentation locally

You might want to read the documentation locally. Get the sources of the website. For the other documentation, run the appropriate make target:

$ ./scripts/ website
$ cd docs
$ make html  # Requires rst2html
$ make man   # Requires a2x
$ make api   # Requires sphinx