1 """
2 The ProcImap package provides an API for the IMAP protocol, subclassing from
3 the "mailbox" and "email" packages provided by the Python standard library.
4
5 This allows to handle messages stored in an IMAP mailbox in much the same way
6 as e.g. messages stored in an mbox or maildir format (with some limitations).
7 This abstract interface is much nicer than having to work with the standard
8 library's imaplib module, which is only a very thin wrapper around the IMAP
9 protocol itself.
10
11 In addition, ProcImap contains a number of "utility" functions and classes,
12 targeted for automatic processing/filtering of email messages, interactive work
13 on an an IMAP server from inside ipython, and writing consistent command line
14 tools operating on IMAP mailboxes.
15
16 The original intent of the ProcImap package was to provide a framework inspired
17 by the traditional procmail (http://www.procmail.org) tool, allowing to filter
18 and organize incoming email messages (hence the name). However, in the course
19 of development the focus has shifted to creating an abstract API for working
20 with IMAP messages, while processing incoming mail has become of secondary
21 interest.
22
23 Nonetheless, you can easily use ProcImap to assist in writing simple scripts
24 that process incoming mails on your standard IMAP server. You should be advised
25 however that many of the techniques that work fine on a standard IMAP mailbox
26 do not work so well when trying to apply them to a Gmail account. While
27 technically Gmail fulfills all specifications of the IMAP protocol, the
28 philosophy behind the system is rather incompatible (look for my "Accessing
29 Gmail through Python" blog post at michaelgoerz.net). Since Gmail is my primary
30 email provider, this explains the shift of focus in the direction of
31 development.
32
33 I use ProcImap as the basis for a new-mail-notification-tool, as well as to
34 perform backups of my Gmail account (see http://github.com/goerz/gmailbkp).
35 I've also used ProcImap to assist in migrating large amounts of messages
36 between accounts, and to debug IMAP servers interactively in an ipython
37 console.
38 """
39