compile and run!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
3.5 KiB

f{,data}sync() usage could be optimized by batching the calls.
15 years ago
add some marker about message being already [remotely] trashed.
real transactions would be certainly not particularly useful ...
make sync_chans() aware of servers, so a bad server (e.g., wrong password)
won't cause the same error message for every attached store.
15 years ago
add support for more authentication methods: oauth, ntlm, ... use SASL?
possibly by calling an external command. that might be overkill, and
wouldn't be very user-friendly, though.
make SSL (connect) timeouts produce a bit more than "Unidentified socket error".
15 years ago
network timeout handling in general would be a good idea.
lock timeout handling, too.
add message expiration based on arrival date (message date would be too
unreliable). MaxAge; probably mutually exclusive to MaxMessages.
add alternative treatments of expired messages. ExpiredMessageMode: Prune
(delete messages like now), Keep (just don't sync) and Archive (move to
separate folder - ArchiveSuffix, default .archive).
15 years ago
unify maildir locking between the two UID storage schemes.
re-opening the db may be expensive, so keep it open.
but keeping lock for too long (e.g., big message downloads) may block other
clients. auto-release lock after 500 ms?
15 years ago
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
can name a single (in-)box (curr. broken with maildir). an empty box name
actually means empty, so the IMAP mailbox should use INBOX for Path (can't
make that the default, as it would mess up the NAMESPACE).
15 years ago
add regexp-based mailbox path rewriting to the drivers. user would provide
expressions for both directions. every transformation would be immediately
verified with the inverse transform. PathDelimiter and Flatten would become
special cases of this.
15 years ago
add daemon mode. primary goal: keep imap password in memory.
also: idling mode.
21 years ago
15 years ago
parallel fetching of multiple mailboxes.
imap_set_flags(): group commands for efficiency, don't call back until
imap_commit().
15 years ago
add streaming from fetching to storing.
handle custom flags (keywords).
22 years ago
make use of IMAP CONDSTORE extension (rfc4551; CHANGEDSINCE FETCH Modifier);
make use of IMAP QRESYNC extension (rfc5162) to avoid SEARCH to find vanished
messages.
22 years ago
use MULTIAPPEND and FETCH with multiple messages.
create dummies describing MIME structure of messages bigger than MaxSize.
flagging the dummy would fetch the real message. possibly remove --renew.
15 years ago
note that all interaction needs to happen on the slave side probably.
propagate folder deletions. for safety, the target must be empty.
don't SELECT boxes unless really needed; in particular not for appending,
and in write-only mode not before changes are made.
15 years ago
problem: UIDVALIDITY change detection is delayed, significantly complicating
matters.
22 years ago
possibly use ^[[1m to highlight error messages.
consider alternative approach to trashing: instead of the current trash-before-
expunge done by mbsync, let MUAs do the trashing (as modern ones typically do).
mbsync wouldn't do any trashing by itself, but should track the moves for
optimization. additionally, there should be a mode to move trashed messages to
the remote store. TrashMode Internal|External, AbsorbRemoteTrash.
a yet different approach to trashing is treating the trash like a normal mailbox.
however, this implies a huge working set.
consider optional use of messages-id (and X-GM-MSGID):
- detection of message moves between folders
- recovery from unmotivated UIDVALIDITY change, or total loss of sync state