Nikolaus Schulz
37f96c1c84
Remove unused method Mbox.is_empty()
2009-11-06 21:09:40 +01:00
Nikolaus Schulz
a78af4c0ff
Keep mbox files open, so we don't break our locks
...
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.
2009-11-06 21:09:39 +01:00
Nikolaus Schulz
ba8928d279
Cleanup restoring of the mbox timestamps
...
* 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()
2009-11-06 21:09:39 +01:00
Nikolaus Schulz
223e2f9802
Cosmetics: in verbose mode, report current mailbox early
...
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.
2009-11-06 21:09:39 +01:00
Nikolaus Schulz
aee4df2fcf
Refuse to process mailboxes owned by someone else
...
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.
2009-11-06 21:09:39 +01:00
Nikolaus Schulz
2e0f3cd3aa
Sanity check existing archives early
...
This used to happen when creating the temporary archive, we now do it before we
start processing the mailbox.
2009-11-06 21:09:39 +01:00
Nikolaus Schulz
79bcf86860
Remove simple-minded security checks
...
Remove the checks if the mailbox is a symlink, and if the output directory is
world-writable. Better no security than half-baked security.
2009-11-06 21:09:39 +01:00
Nikolaus Schulz
a3276f8c68
Move archive naming code into new function make_archive_name()
2009-11-06 21:09:38 +01:00
Nikolaus Schulz
cd07a2663e
Remove the setuid functionality
...
It was not a good idea, and trying to do it right would be too much effort.
2009-11-06 21:09:38 +01:00
Nikolaus Schulz
bd85cffe37
Simplify imap_get_namespace() and imap_guess_mailboxnames()
...
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.
2009-11-06 21:09:38 +01:00
Nikolaus Schulz
9574c4f41c
Removed obsolete references to subversion
...
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.
2009-11-06 17:20:16 +01:00
Nikolaus Schulz
c6cb0b4612
IMAP: imap_guess_mailboxnames: check for NIL delimiter.
...
Only replace the slash with the server's hierarchy delimiter if the latter
actually exists (is not NIL).
2008-04-09 00:22:07 +00:00
Nikolaus Schulz
415e055a6e
TODO: dropped items about --all, which is now implemented.
2008-04-08 23:15:45 +00:00
Nikolaus Schulz
622c0105ea
IMAP: only check for \Deleted in PERMANENTFLAGS if mailbox isn't read-only.
...
This spewed an error when --dry-running.
2008-04-08 23:06:10 +00:00
Nikolaus Schulz
775952ec98
IMAP: added sanity check for \Deleted in PERMANENTFLAGS.
2008-04-08 19:31:11 +00:00
Nikolaus Schulz
681fd0c527
Minor, local variable renaming.
2008-04-08 19:10:41 +00:00
Nikolaus Schulz
e5b6397dd5
Moved IMAP SELECT code into a separate function.
2008-04-08 19:06:42 +00:00
Nikolaus Schulz
78b4923832
IMAP: be NAMESPACE-aware; improved probing for guessed mailbox names.
...
* 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.
2008-04-08 15:38:51 +00:00
Nikolaus Schulz
37816fd659
archivemail.sgml: warn that multiple passes with --copy will create duplicates.
2008-04-08 14:11:45 +00:00
Nikolaus Schulz
bfff00e395
Code structuring: made a separate group of IMAP functions.
...
No code changes, just moved functions around.
2008-04-07 20:16:29 +00:00
Nikolaus Schulz
07219ff14b
IMAP: servers should never advertise LOGINDISABLED with SSL; removed the check
...
for it, which was just used to spit a special error message anyway.
2008-03-21 01:05:15 +00:00
Nikolaus Schulz
26ab4611ec
Archiving an IMAP folder with --all didn't archive *any* messages.
...
The message sequence numbers must be strings, but were generated as integers;
fixed.
2008-03-19 18:30:43 +00:00
Nikolaus Schulz
efe02ea32a
Updated year in another copyright note, which I overlooked before.
2008-03-16 17:57:18 +00:00
Nikolaus Schulz
bc5c3d5e45
Updated changelog, which was a little behind.
2008-03-15 20:51:40 +00:00
Nikolaus Schulz
a9215463c4
Removed an assertion which choked upon --days=0.
2008-03-15 20:34:52 +00:00
Nikolaus Schulz
f43cbb106d
Added new option --all to archive all messages in a mailbox.
...
Updated documentation, and added a first simple unittest for this.
Closes : #1764846 .
2008-03-15 20:24:46 +00:00
Nikolaus Schulz
2719645f2c
Updated copyright notes to include year 2008.
2008-03-15 19:39:28 +00:00
Nikolaus Schulz
9ac3a68228
Documented the new option --debug-imap in the manpage.
2008-03-15 19:35:22 +00:00
Nikolaus Schulz
c0f0ad33d7
Fixed crash when archiving an empty maildir with python 2.5.
...
The incompatible changes in mailbox.Maildir triggered an assertion in
_archive_dir(); removing that assertion since it looks not useful anyway.
2008-03-15 18:42:56 +00:00
Nikolaus Schulz
22e23d9d38
Sanitized parsing some IMAP server responses by switching to regular
...
expressions.
2008-03-15 15:59:05 +00:00
Nikolaus Schulz
f6f7903f58
test_archivemail.py: removed nested calls to setUp() and tearDown().
2008-03-06 20:09:44 +00:00
Nikolaus Schulz
afa61f8597
TODO: added items:
...
* perhaps integrate --debug-imap into -vv switch
* graceful IMAP connection termination upon error
2008-02-14 22:31:11 +00:00
Nikolaus Schulz
704d5a961e
Added --debug-imap option which just sets imaplib.Debug.
2008-02-14 22:26:10 +00:00
Nikolaus Schulz
6abf732d2e
IMAP: catch LOGINDISABLED, and suggest using imaps.
2008-02-14 22:24:16 +00:00
Nikolaus Schulz
533628c2fc
Only try CRAM-MD5 authentication if the server advertises it.
2008-02-14 22:19:34 +00:00
Nikolaus Schulz
1fcd5b7292
TODO: added issues:
...
- no locking with archives
- no validation of existing archives
- discomfort with current mbox class design and usage
2008-01-19 00:12:35 +00:00
Nikolaus Schulz
77481169d8
_archive_imap() used SSL only if the 'imaps://' url scheme was all lowercase.
...
Fixed.
2008-01-19 00:04:01 +00:00
Nikolaus Schulz
ce02aba226
Updated TODO list. Added:
...
* rework locking
* IMAP SEARCH BEFORE matching dates only, no time
* document mbox format issues
2007-11-15 04:15:25 +00:00
Nikolaus Schulz
8e5c870057
guess_delivery_time():
...
* 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 .
2007-11-13 21:13:38 +00:00
Nikolaus Schulz
4584dffe14
Fixed date header parsing to be precise with timezone information. Also, when
...
writing From_ line timestamps, don't use UTC but local time, without timezone
information.
2007-11-13 02:59:31 +00:00
Nikolaus Schulz
5178c956bc
!%&$*# Repair previous broken commit where an unrelated hunk slipped through.
...
Reverted that hunk.
2007-11-13 00:36:51 +00:00
Nikolaus Schulz
d9ffaf4a3b
When converting from other formats to mbox, re-use existing 'Status' and
...
'X-Status' headers if appropriate (instead of deleting and re-generating them).
2007-11-13 00:32:49 +00:00
Nikolaus Schulz
ead112daba
If running as root, only call seteuid/setegid if the if the owner of the mailbox
...
is not root.
2007-11-09 17:04:52 +00:00
Nikolaus Schulz
0ae7edab86
Bumped version to 0.7.2, and updated release info on the webpage.
2007-11-09 14:54:54 +00:00
Nikolaus Schulz
8cc36126ec
RELNOTES: slightly re-edited to be more consistent.
2007-11-09 14:52:38 +00:00
Nikolaus Schulz
f1784f3093
RELNOTES, CHANGELOG: updated for v0.7.2, which fixes a crash with IMAP and
...
python << 2.5.
2007-11-09 14:46:17 +00:00
Nikolaus Schulz
e0c75a1001
IMAP: fixed crash by working around python bug #1277098 , which is still pending
...
in python << 2.5.
2007-11-09 14:33:13 +00:00
Nikolaus Schulz
5db3d2fe63
Makefile: made the htdocs rule a little bit more intelligent.
2007-11-08 18:23:15 +00:00
Nikolaus Schulz
c19a9873b0
Makefile: declare phony targets.
2007-11-08 18:09:45 +00:00
Nikolaus Schulz
796f60f8c8
Makefile: added rule to generate htdocs tarball.
2007-11-07 23:59:45 +00:00