aboutsummaryrefslogtreecommitdiffstats
path: root/archivemail.py
Commit message (Collapse)AuthorAgeFilesLines
* Deprecate the old automatic seteuid feature; document this in the manpage andNikolaus Schulz2007-11-021-0/+2
| | | | | | changelog, and let archivemail spit a warning when it changes the effective user id.
* If running as root, only switch the effective uid and gid back if we haveNikolaus Schulz2007-11-021-1/+1
| | | | | actually switched them before.
* New option --copy: archive mail, but don't delete it from the mailbox. Nikolaus Schulz2007-11-021-21/+31
| | | | | Closes: #981865, #988803, #1764851, Debian bug #434798
* IMAP: first fetch message flags, then the body. Doing it together alwaysNikolaus Schulz2007-11-021-2/+7
| | | | | | returns the \Seen flag set. Closes: Debian bug #434807 (well, the outstanding part of it).
* When converting from maildir or IMAP to mbox, report existing 'Status' andNikolaus Schulz2007-11-021-4/+16
| | | | | | 'X-Status' headers in verbose mode, since they are preserved, which can give surprising results.
* IMAP: fixed message flags retrieval, which failed to extract the right stringNikolaus Schulz2007-11-021-1/+1
| | | | | from the server response. Tough.
* If dry-running, open IMAP mailboxes read-only. This uses EXAMINE instead ofNikolaus Schulz2007-11-021-1/+4
| | | | | select, thus preserving the \Recent flag.
* add_status_headers_imap(): Nikolaus Schulz2007-11-021-5/+2
| | | | | | | | | * mark message 'old' iff it's not \Recent (drop requirement that it's unread; this probably confused mutt's message status flags in the index with mbox status flags). * a message not \Seen and not \Recent was marked as 'N', but there is no such thing like an mbox status flag 'N'.
* Skip invalid messages/files in Maildirs. Nikolaus Schulz2007-10-241-3/+4
| | | | | | Closes: #1783369, Debian bug #255944, and Debian bug #305902 also seems about this issue.
* New IMAP URL parser that understands double-quoted usernames and passwords.Nikolaus Schulz2007-10-231-12/+40
| | | | | Closes: #1640878
* Define very simple exception classes, mapping to the error functionsNikolaus Schulz2007-10-231-3/+16
| | | | | | | user_error() and unexpected_error(). If archivemail is used as a module, let the functions raise the corresponding exceptions rather than writing to stderr and calling sys.exit().
* Use a wrapper around rfc822.Message.fp to find the filename for Maildir/MHNikolaus Schulz2007-10-221-8/+30
| | | | | | emails. Python 2.5 broke backward compatibility for Maildirs. :-/ Closes: #1670422
* Expand tilde in argument of long option --output-dir, the shell doesn't.Nikolaus Schulz2006-11-141-1/+1
|
* Bumped version to 0.7.0Nikolaus Schulz2006-11-021-1/+1
|
* Renamed __cvs_id__ to __svn_id__.Nikolaus Schulz2006-11-021-1/+1
|
* Split the final stats message in two lines, because it might otherwise linewrap.Nikolaus Schulz2006-11-021-1/+1
|
* Made IMAP password prompt a tad bit more verbose. Nikolaus Schulz2006-11-011-1/+1
|
* Don't prompt for the IMAP password if in quiet mode or if not runningNikolaus Schulz2006-11-011-0/+2
| | | | | interactively (stdin is not a terminal).
* Improved IMAP error handling: pass error messages from the server on to theNikolaus Schulz2006-11-011-5/+12
| | | | | user, and check if deleting the messages was successful.
* Streamlined verbose IMAP messages a bit.Nikolaus Schulz2006-11-011-2/+2
|
* Removed redundant check if imap login was succesful, since IMAP4.login thenNikolaus Schulz2006-11-011-1/+0
| | | | | raises an exception.
* Tightened some blanket exception handlers.Nikolaus Schulz2006-11-011-5/+5
|
* Changed misleading references to 'message ids' in the IMAP code to theNikolaus Schulz2006-11-011-4/+5
| | | | | technically correct 'message sequence number'.
* Optimized IMAP code: just invert the message list from the SEARCH responseNikolaus Schulz2006-11-011-35/+23
| | | | | | instead of querying the server another time with an inverted search filter. Gather RFC822.SIZE in one big run.
* Renamed variable 'filter' to prevent conflicts with the builtin function.Nikolaus Schulz2006-11-011-17/+17
|
* Always sanity-check each archive destination directory, not only when it'sNikolaus Schulz2006-10-311-9/+19
| | | | | specified with --output-dir.
* Make stats report size totals for the mailboxes and the archived messages, andNikolaus Schulz2006-10-311-18/+81
| | | | | while at it, make stats work with IMAP.
* Minor code cleanup in build_imap_filter().Nikolaus Schulz2006-10-311-5/+2
|
* Shortened new option name "--dont-mangle-from" to "--dont-mangle".Nikolaus Schulz2006-10-301-3/+3
|
* Rewrote Mbox.procmail_lock() to fix locking race condition. Should now also beNikolaus Schulz2006-10-301-12/+33
| | | | | NFS-safe.
* Don't run clean_up() by means of atexit, but use a plain finally clause in theNikolaus Schulz2006-10-291-40/+41
| | | | | | main archive() function. This is simpler, and it works better with the testsuite calling archive() directly, where the atexit handler isn't triggered.
* Preparing per-testcase cleanup: made StaleFiles.clean() remember what itNikolaus Schulz2006-10-291-4/+12
| | | | | | | deleted, so it's idempotent and e.g. doesn't stomp over someone else's files if invoked twice and running as root. Currently I don't see how this could happen, but it will with a per-testcase cleanup.
* Replaced all tempfile.mktemp() calls with mkstemp()/mkdtemp().Nikolaus Schulz2006-10-271-5/+4
| | | | | | | Should just serve as a last security fallback, since we operate in a safe temporary directory and everything should be okay anyway, but that may be less obvious. :-)
* When writing messages to mboxes, append os.linesep and mangle From_ only if theNikolaus Schulz2006-10-181-3/+7
| | | | | | | message source is not an mbox-format folder. Attempts to fix broken mbox-formatted input are only asking for trouble, and that's not our job anyway.
* IMAPS and IMAP4.login_cram_md5() are new in Python 2.3; bump Python dependencyNikolaus Schulz2006-10-141-4/+6
| | | | | check to version 2.3.
* Updated archivemail.__copyright__Nikolaus Schulz2006-10-141-1/+4
|
* Added maintainer entry in setup.py. Nikolaus Schulz2006-10-121-1/+3
| | | | | Updated copyright notices in archivemail.py and test_archivemail.py.
* Added new option --dont-mangle-from to turn off From_ mangling.Nikolaus Schulz2006-10-121-7/+12
|
* Made From_ mangling work reliably with large messages, too. Nikolaus Schulz2006-10-121-1/+6
|
* Mangle From_ in message bodies. Nikolaus Schulz2006-10-121-0/+5
|
* Terminate each message in newly written mbox with an empty line.Nikolaus Schulz2006-10-121-0/+1
|
* Implemented --dry-run and --delete for IMAP, both do no not download messages. Nikolaus Schulz2006-10-121-25/+25
| | | | | Stats are still missing.
* Preparing the implementation of IMAP --delete: Nikolaus Schulz2006-10-111-8/+8
| | | | | if not dry-running, delete messages whether we archived them or not.
* Kindly shutdown IMAP connection when doing a --dry-run, too. Nikolaus Schulz2006-10-111-2/+2
|
* _archive_imap(): deleted unused variable. Nikolaus Schulz2006-10-111-1/+0
|
* Fixed invalid IMAP filter string for large messages (--size option). Nikolaus Schulz2006-10-021-1/+1
| | | | | Closes: #863813
* Convert on-the-wire CRLF to native EOL when saving messages from an IMAP ↵Nikolaus Schulz2006-09-281-1/+4
| | | | folder.
* Fixed IMAP authentication/URL parsing. Require username encoded in URL, but beNikolaus Schulz2006-09-281-6/+7
| | | | | | flexible with the password: handle both --pwfile and URL-encoded password, and fallback to querying the user if neither is present.
* Fixed guess_return_path() to actually extract 'Return-path' and 'From' headers. Nikolaus Schulz2006-09-281-1/+1
|
* Fixed long options --filter-append and --pwfile to accept their arguments.Nikolaus Schulz2006-09-281-1/+1
|