Go to file
Nikolaus Schulz 11103e2de2 mbox locking: combine locking functions into one and swap lock order
We used to create a dotlock file first and then lock with fcntl; swap that
order, since locking first with fcntl seems to be more common.

This patch also adds general mbox lock/unlock methods, which call the
dotlock and fcntl-lock methods, and moves the retry logic there.

When the dotlock and fcntl methods fail to acquire a lock, they now raise
a custom exception "LockUnavailable", which gets caught in the general
lock() method.  That way, if we succeed to acquire one lock but fail to
acquire the other, we can release our locks at the upper level and retry.
2010-07-19 01:13:25 +02:00
examples Added a lot more documentation, fixed up usage messages and expanded a lot 2002-04-13 11:36:32 +00:00
CHANGELOG IMAP: be NAMESPACE-aware; improved probing for guessed mailbox names. 2008-04-08 15:38:51 +00:00
COPYING Initial revision 2002-03-26 03:53:09 +00:00
FAQ Fixed a bug where mailbox locking would fail under Solaris, also fixed 2002-09-15 06:14:57 +00:00
MANIFEST Fixed a bug where we would throw an exception if a message was dated 2002-08-18 12:17:56 +00:00
Makefile Removed obsolete references to subversion 2009-11-06 17:20:16 +01:00
README README: Updated python dependency, removed note about the required zlib module 2006-11-02 23:04:14 +00:00
RELNOTES RELNOTES: slightly re-edited to be more consistent. 2007-11-09 14:52:38 +00:00
TODO Switch mbox locking from flock(2) to posix lockf(2) 2010-07-19 01:13:25 +02:00
archivemail.1 Switch mbox locking from flock(2) to posix lockf(2) 2010-07-19 01:13:25 +02:00
archivemail.py mbox locking: combine locking functions into one and swap lock order 2010-07-19 01:13:25 +02:00
archivemail.sgml Switch mbox locking from flock(2) to posix lockf(2) 2010-07-19 01:13:25 +02:00
db2html.dsl db2html.dsl: override $refentry-body$ from dbrfntry.dsl to add a <hr> after the 2007-11-06 23:33:33 +00:00
index.html Removed obsolete references to subversion 2009-11-06 17:20:16 +01:00
manpage.css manpage.css, style.css: 2007-11-06 23:38:05 +00:00
setup.py Bumped version to 0.7.2, and updated release info on the webpage. 2007-11-09 14:54:54 +00:00
style.css manpage.css, style.css: 2007-11-06 23:38:05 +00:00
test_archivemail.py mbox locking: combine locking functions into one and swap lock order 2010-07-19 01:13:25 +02:00

README

-----------------------------------------------------------
archivemail - archive and compress old mail in your mailbox
-----------------------------------------------------------

OVERVIEW:

archivemail is a tool written in python(1) for archiving and compressing old
email in mailboxes. 

It can move messages older than the specified number of days to a separate
'archive' mbox-format mailbox that is compressed with 'gzip'.

For example, have you been subscribing to the 'linux-kernel' mailing list
for the last 6 years and ended up with an 160-meg mailbox that 'mutt' is
taking a long time to load?  'archivemail' can move all messages that are
older than 6 months to a separate compressed mailbox, and leave you with
just the most recent messages. 

'archivemail' can save a lot of disk space and will significantly reduce
overhead on your mail reader. The number of days before mail is considered
'old' is up to you, but the default is 180 days. You can also archive messages
by an absolute date or only archive unread messages.


REQUIREMENTS:

archivemail requires python version 2.3. It also uses some optional python
modules, but these should be pretty much standard; if you get an ImportError
nonetheless, please report it, thanks. (For contact addresses see below.)

Python is available from http://www.python.org/


INSTALLATION:

If you want to test archivemail:
    cp archivemail archivemail.py
    python test_archivemail.py
    (NOTE: This could take over 90 seconds on slower systems)

To install archivemail, run:
    python setup.py install


USE:

For more detailed information and examples, look at the archivemail man page.

The best way to run archivemail is from cron, giving the '-q' option to
archivemail to make it quiet, only printing messages if something went wrong.
Check out the 'examples' directory for an example shell script to be run from
cron.

The archivemail website is at: http://archivemail.sourceforge.net/

If you have any feedback or bug reports about archivemail, you are very
welcome to email the maintainers; as of November 2006, these are:

Nikolaus Schulz <microschulz@web.de>
Peter Poeml <poeml@suse.de>


-- Paul Rodger <paul at paulrodger dot com>, archivemail author
   Updated by: Nikolaus Schulz, maintainer