|
|
@ -2,8 +2,21 @@ f{,data}sync() usage could be optimized by batching the calls. |
|
|
|
|
|
|
|
|
|
|
|
make SSL (connect) timeouts produce a bit more than "Unidentified socket error". |
|
|
|
make SSL (connect) timeouts produce a bit more than "Unidentified socket error". |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
automatically resume upon transient errors, e.g. "connection reset by peer" |
|
|
|
|
|
|
|
or timeout after some data was already transmitted. |
|
|
|
|
|
|
|
possibly also try to handle Exchange's "glitches" somehow. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add support for IMAP UTF-7 (for internationalized mailbox names). |
|
|
|
|
|
|
|
|
|
|
|
uidvalidity lock timeout handling would be a good idea. |
|
|
|
uidvalidity lock timeout handling would be a good idea. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
should complain when multiple Channels match the same folders. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
propagate folder deletions even when the folders are non-empty. |
|
|
|
|
|
|
|
- verify that "most" of the folders in the Channel are still there. |
|
|
|
|
|
|
|
- refuse to delete unpropagated messages when trashing on the remote side. |
|
|
|
|
|
|
|
- refuse to delete master if it has unpropagated messages. symmetry? |
|
|
|
|
|
|
|
|
|
|
|
add message expiration based on arrival date (message date would be too |
|
|
|
add message expiration based on arrival date (message date would be too |
|
|
|
unreliable). MaxAge; probably mutually exclusive to MaxMessages. |
|
|
|
unreliable). MaxAge; probably mutually exclusive to MaxMessages. |
|
|
|
|
|
|
|
|
|
|
@ -11,6 +24,21 @@ add alternative treatments of expired messages. ExpiredMessageMode: Prune |
|
|
|
(delete messages like now), Keep (just don't sync) and Archive (move to |
|
|
|
(delete messages like now), Keep (just don't sync) and Archive (move to |
|
|
|
separate folder - ArchiveSuffix, default .archive). |
|
|
|
separate folder - ArchiveSuffix, default .archive). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add support for event notification callbacks. |
|
|
|
|
|
|
|
it would be also possible to report more differentiated exit codes, but |
|
|
|
|
|
|
|
that seems too limiting in the general case. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
make it possible to have different mailbox names for Master and Slave in |
|
|
|
|
|
|
|
Patterns. |
|
|
|
|
|
|
|
- use master:slave for the pattern |
|
|
|
|
|
|
|
- for quoting, use more colons: the longest sequence of colons is the |
|
|
|
|
|
|
|
separator |
|
|
|
|
|
|
|
- this makes Groups mostly useless, as they are mostly a workaround for this |
|
|
|
|
|
|
|
function being missing so far |
|
|
|
|
|
|
|
- this is needed for move detection, which would work only within one Channel |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
normalize INBOX capitalization received from IMAP, to avoid anomalies. |
|
|
|
|
|
|
|
|
|
|
|
kill the concept of an INBOX, it is a relic from single-channel operation. |
|
|
|
kill the concept of an INBOX, it is a relic from single-channel operation. |
|
|
|
if somebody needs it, he can have two stores with different Paths. the path |
|
|
|
if somebody needs it, he can have two stores with different Paths. the path |
|
|
|
can name a single (in-)box (curr. broken with maildir). an empty box name |
|
|
|
can name a single (in-)box (curr. broken with maildir). an empty box name |
|
|
@ -26,6 +54,7 @@ add daemon mode. primary goal: keep imap password in memory. |
|
|
|
also: idling mode. |
|
|
|
also: idling mode. |
|
|
|
|
|
|
|
|
|
|
|
parallel fetching of multiple mailboxes. |
|
|
|
parallel fetching of multiple mailboxes. |
|
|
|
|
|
|
|
TLS session resumption becomes interesting then as well. |
|
|
|
|
|
|
|
|
|
|
|
imap_set_flags(): group commands for efficiency, don't call back until |
|
|
|
imap_set_flags(): group commands for efficiency, don't call back until |
|
|
|
imap_commit(). |
|
|
|
imap_commit(). |
|
|
@ -49,6 +78,8 @@ and in write-only mode not before changes are made. |
|
|
|
problem: UIDVALIDITY change detection is delayed, significantly complicating |
|
|
|
problem: UIDVALIDITY change detection is delayed, significantly complicating |
|
|
|
matters. |
|
|
|
matters. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
some error messages are unhelpful in non-verbose mode due to missing context. |
|
|
|
|
|
|
|
|
|
|
|
possibly use ^[[1m to highlight error messages. |
|
|
|
possibly use ^[[1m to highlight error messages. |
|
|
|
|
|
|
|
|
|
|
|
consider alternative approach to trashing: instead of the current trash-before- |
|
|
|
consider alternative approach to trashing: instead of the current trash-before- |
|
|
@ -61,4 +92,4 @@ however, this implies a huge working set. |
|
|
|
|
|
|
|
|
|
|
|
consider optional use of messages-id (and X-GM-MSGID): |
|
|
|
consider optional use of messages-id (and X-GM-MSGID): |
|
|
|
- detection of message moves between folders |
|
|
|
- detection of message moves between folders |
|
|
|
- recovery from unmotivated UIDVALIDITY change, or total loss of sync state |
|
|
|
- recovery from loss of sync state, migration from other tools |
|
|
|