Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Simplify the final committing of the mailbox and archive | Nikolaus Schulz | 2010-07-19 | 2 | -83/+54 | |
| | | | | | | | | | | * Make the finalise() methods spot if they have anything to do * We used to create the temporary mbox files on demand in the message processing loop, if we needed to write to them. Now we create them beforehand, but only if they might be needed (e.g. we don't create an archive if options.delete_old_mail is set). * The above combined makes the final committing of the changes simpler (a *lot* simpler for mboxes), and we can dump the Mbox.leave_empty() method. | |||||
* | Split out new class TempMbox | Nikolaus Schulz | 2010-07-19 | 2 | -111/+121 | |
| | | | | | This separates write-only mbox access to the temporary mboxes from the read-only access to the original mbox. | |||||
* | Simplify ArchiveMbox.__init__ | Nikolaus Schulz | 2009-11-06 | 1 | -15/+5 | |
| | ||||||
* | Append to the archive, and don't use rename() | Nikolaus Schulz | 2009-11-06 | 1 | -40/+20 | |
| | | | | | This is WIP to prepare locking for the archive. Since we no longer copy the whole archive before appending, archiving should also be faster. | |||||
* | Remove unused method Mbox.is_empty() | Nikolaus Schulz | 2009-11-06 | 2 | -20/+0 | |
| | ||||||
* | Keep mbox files open, so we don't break our locks | Nikolaus Schulz | 2009-11-06 | 1 | -34/+17 | |
| | | | | | | When committing a changed mbox, don't use os.rename(), and don't open/close the mbox file to truncate it to zero length. Locking was pretty much broken before -- at least in theory a quite severe bug. | |||||
* | Cleanup restoring of the mbox timestamps | Nikolaus Schulz | 2009-11-06 | 1 | -14/+5 | |
| | | | | | | | | * Remove code duplication: restore the mbox timestamps once and for all when we're done * Don't bother restoring the file mode when finishing, since this is handled in RetainMbox.finalise() (and need be) * Therefore, rename Mbox.reset_stat() to reset_timestamps() | |||||
* | Cosmetics: in verbose mode, report current mailbox early | Nikolaus Schulz | 2009-11-06 | 1 | -1/+1 | |
| | | | | | This is now before we do the sanity checking, so in verbose mode, we don't error out before having said that we now turn attention to the current mailbox. | |||||
* | Refuse to process mailboxes owned by someone else | Nikolaus Schulz | 2009-11-06 | 1 | -2/+12 | |
| | | | | | | This should also protect people relying on the old setuid feature. If the mailbox is local, by checking the ownership we necessarily check for existance. | |||||
* | Sanity check existing archives early | Nikolaus Schulz | 2009-11-06 | 1 | -10/+15 | |
| | | | | | This used to happen when creating the temporary archive, we now do it before we start processing the mailbox. | |||||
* | Remove simple-minded security checks | Nikolaus Schulz | 2009-11-06 | 1 | -12/+0 | |
| | | | | | Remove the checks if the mailbox is a symlink, and if the output directory is world-writable. Better no security than half-baked security. | |||||
* | Move archive naming code into new function make_archive_name() | Nikolaus Schulz | 2009-11-06 | 1 | -18/+21 | |
| | ||||||
* | Remove the setuid functionality | Nikolaus Schulz | 2009-11-06 | 1 | -24/+0 | |
| | | | | It was not a good idea, and trying to do it right would be too much effort. | |||||
* | Simplify imap_get_namespace() and imap_guess_mailboxnames() | Nikolaus Schulz | 2009-11-06 | 1 | -15/+15 | |
| | | | | | | I don't think anybody wants to archive folders in shared or public IMAP namespaces, so we don't bother checking all possible namespaces. The code was ugly anyway. | |||||
* | Removed obsolete references to subversion | Nikolaus Schulz | 2009-11-06 | 3 | -19/+9 | |
| | | | | | | archivemail development has moved to git. This patch updates the project webpage, removes the subversion $Id$ keyword that was stored in archivemail.__svn_id__, and updates the Makefile. | |||||
* | IMAP: imap_guess_mailboxnames: check for NIL delimiter. | Nikolaus Schulz | 2008-04-09 | 1 | -1/+1 | |
| | | | | | | Only replace the slash with the server's hierarchy delimiter if the latter actually exists (is not NIL). | |||||
* | TODO: dropped items about --all, which is now implemented. | Nikolaus Schulz | 2008-04-08 | 1 | -4/+2 | |
| | ||||||
* | IMAP: only check for \Deleted in PERMANENTFLAGS if mailbox isn't read-only. | Nikolaus Schulz | 2008-04-08 | 1 | -1/+1 | |
| | | | | | This spewed an error when --dry-running. | |||||
* | IMAP: added sanity check for \Deleted in PERMANENTFLAGS. | Nikolaus Schulz | 2008-04-08 | 1 | -0/+14 | |
| | ||||||
* | Minor, local variable renaming. | Nikolaus Schulz | 2008-04-08 | 1 | -6/+6 | |
| | ||||||
* | Moved IMAP SELECT code into a separate function. | Nikolaus Schulz | 2008-04-08 | 1 | -15/+20 | |
| | ||||||
* | IMAP: be NAMESPACE-aware; improved probing for guessed mailbox names. | Nikolaus Schulz | 2008-04-08 | 4 | -30/+86 | |
| | | | | | | | | * Automatically add NAMESPACE prefix to the mailbox path if necessary, * Explicitely check for guessed mailbox names with LIST instead of just trying to SELECT them. * Updated documentation about NAMESPACE handling. | |||||
* | archivemail.sgml: warn that multiple passes with --copy will create duplicates. | Nikolaus Schulz | 2008-04-08 | 2 | -1/+5 | |
| | ||||||
* | Code structuring: made a separate group of IMAP functions. | Nikolaus Schulz | 2008-04-07 | 1 | -58/+65 | |
| | | | | | No code changes, just moved functions around. | |||||
* | IMAP: servers should never advertise LOGINDISABLED with SSL; removed the check | Nikolaus Schulz | 2008-03-21 | 1 | -5/+1 | |
| | | | | | for it, which was just used to spit a special error message anyway. | |||||
* | Archiving an IMAP folder with --all didn't archive *any* messages. | Nikolaus Schulz | 2008-03-19 | 1 | -1/+1 | |
| | | | | | | The message sequence numbers must be strings, but were generated as integers; fixed. | |||||
* | Updated year in another copyright note, which I overlooked before. | Nikolaus Schulz | 2008-03-16 | 1 | -1/+1 | |
| | ||||||
* | Updated changelog, which was a little behind. | Nikolaus Schulz | 2008-03-15 | 1 | -0/+7 | |
| | ||||||
* | Removed an assertion which choked upon --days=0. | Nikolaus Schulz | 2008-03-15 | 1 | -3/+0 | |
| | ||||||
* | Added new option --all to archive all messages in a mailbox. | Nikolaus Schulz | 2008-03-15 | 4 | -11/+68 | |
| | | | | | | Updated documentation, and added a first simple unittest for this. Closes: #1764846. | |||||
* | Updated copyright notes to include year 2008. | Nikolaus Schulz | 2008-03-15 | 2 | -2/+2 | |
| | ||||||
* | Documented the new option --debug-imap in the manpage. | Nikolaus Schulz | 2008-03-15 | 2 | -2/+24 | |
| | ||||||
* | Fixed crash when archiving an empty maildir with python 2.5. | Nikolaus Schulz | 2008-03-15 | 1 | -1/+0 | |
| | | | | | | The incompatible changes in mailbox.Maildir triggered an assertion in _archive_dir(); removing that assertion since it looks not useful anyway. | |||||
* | Sanitized parsing some IMAP server responses by switching to regular | Nikolaus Schulz | 2008-03-15 | 1 | -8/+8 | |
| | | | | | expressions. | |||||
* | test_archivemail.py: removed nested calls to setUp() and tearDown(). | Nikolaus Schulz | 2008-03-06 | 1 | -68/+0 | |
| | ||||||
* | TODO: added items: | Nikolaus Schulz | 2008-02-14 | 1 | -0/+7 | |
| | | | | | | * perhaps integrate --debug-imap into -vv switch * graceful IMAP connection termination upon error | |||||
* | Added --debug-imap option which just sets imaplib.Debug. | Nikolaus Schulz | 2008-02-14 | 1 | -1/+8 | |
| | ||||||
* | IMAP: catch LOGINDISABLED, and suggest using imaps. | Nikolaus Schulz | 2008-02-14 | 1 | -2/+9 | |
| | ||||||
* | Only try CRAM-MD5 authentication if the server advertises it. | Nikolaus Schulz | 2008-02-14 | 1 | -3/+5 | |
| | ||||||
* | TODO: added issues: | Nikolaus Schulz | 2008-01-19 | 1 | -0/+14 | |
| | | | | | | | - no locking with archives - no validation of existing archives - discomfort with current mbox class design and usage | |||||
* | _archive_imap() used SSL only if the 'imaps://' url scheme was all lowercase. | Nikolaus Schulz | 2008-01-19 | 1 | -1/+1 | |
| | | | | | Fixed. | |||||
* | Updated TODO list. Added: | Nikolaus Schulz | 2007-11-15 | 1 | -0/+29 | |
| | | | | | | | * rework locking * IMAP SEARCH BEFORE matching dates only, no time * document mbox format issues | |||||
* | guess_delivery_time(): | Nikolaus Schulz | 2007-11-13 | 4 | -10/+24 | |
| | | | | | | | | | * look for the timestamp of the latest 'Received' header before resorting to 'Date' or 'Resent-Date'. * let 'Resent-date' header take precedence over 'Date'. Document these changes in manpage and changelog. Closes: #1481316, #1764855, Debian bug #272666. | |||||
* | Fixed date header parsing to be precise with timezone information. Also, when | Nikolaus Schulz | 2007-11-13 | 2 | -9/+16 | |
| | | | | | | writing From_ line timestamps, don't use UTC but local time, without timezone information. | |||||
* | !%&$*# Repair previous broken commit where an unrelated hunk slipped through. | Nikolaus Schulz | 2007-11-13 | 1 | -1/+1 | |
| | | | | | Reverted that hunk. | |||||
* | When converting from other formats to mbox, re-use existing 'Status' and | Nikolaus Schulz | 2007-11-13 | 1 | -5/+7 | |
| | | | | | 'X-Status' headers if appropriate (instead of deleting and re-generating them). | |||||
* | If running as root, only call seteuid/setegid if the if the owner of the mailbox | Nikolaus Schulz | 2007-11-09 | 1 | -9/+11 | |
| | | | | | is not root. | |||||
* | Bumped version to 0.7.2, and updated release info on the webpage. | Nikolaus Schulz | 2007-11-09 | 3 | -4/+4 | |
| | ||||||
* | RELNOTES: slightly re-edited to be more consistent. | Nikolaus Schulz | 2007-11-09 | 1 | -3/+8 | |
| | ||||||
* | RELNOTES, CHANGELOG: updated for v0.7.2, which fixes a crash with IMAP and | Nikolaus Schulz | 2007-11-09 | 2 | -0/+10 | |
| | | | | | python << 2.5. |