Manos Pitsidianakis
733de5a5fb
Fix some clippy suggestions
3 years ago
Manos Pitsidianakis
90042379a6
melib/{imap,nntp}: throw error on extra unusued conf flags
3 years ago
Manos Pitsidianakis
24b4c117e7
melib: don't use both {set,push}_references()
...
set_references() already calls push_references()
3 years ago
Manos Pitsidianakis
781a1d0e1b
melib/backends: add collection() method to MailBackend
...
Keep track of the Collection state in the backend side
3 years ago
Zisu Andrei
0034f195e3
melib/imap: Lazy evaluate idle capability
...
With the eager evaluation, you run the risk of checking the capabilities
store before any connection to the server may have been opened.
Therefore, the capabilities uid_store will be empty and it will fall
back to poll_with_examine even if the server might have support for
idle.
3 years ago
Manos Pitsidianakis
b2e853dd7b
melib/imap: update unseen count on \Seen set_flags()
3 years ago
Manos Pitsidianakis
fee8f5b575
melib/backends: move IsSubscribedFn to backends mod
3 years ago
Manos Pitsidianakis
68f9d1220b
melib/imap: remove DoubleEndedIterator for ImapLineIterator
3 years ago
Manos Pitsidianakis
1408690a9a
melib/imap: don't retry watch conn on non-network error
3 years ago
Manos Pitsidianakis
4939a1ad9e
melib/imap: remove some debug prints
4 years ago
Manos Pitsidianakis
8e7583a32f
melib/imap: don't clear mailbox counts before fetching
4 years ago
Manos Pitsidianakis
76c1c1a213
melib/imap: don't examine unloaded mailboxes for updates
...
In examine_updates() which is periodically executed in the IMAP watch
thread, the mailbox's contents get fetched regardless if the user has
fetched the mailbox before. That means eg a large mailbox that was
unused by the user might perform a large fetch all of a sudden without
the user's knowledge/touch.
Add `warm` property in ImapMailbox that states whether the mailbox has
been loaded before in current execution.
Closes #88 IMAP: don't examine unloaded mailboxes for updates, just for message count stats
4 years ago
Manos Pitsidianakis
92c12d3526
melib/imap: implement OAUTH2 authentication
4 years ago
Manos Pitsidianakis
2ef2add67f
imap: fix untrimmed query str resulting in invalid search criteria in cyrus
4 years ago
Manos Pitsidianakis
f9ce5327c2
melib/imap: fix some LazyCountSet logic errors in sync
4 years ago
Manos Pitsidianakis
7a9c150f33
melib/imap: fetch References header along with ENVELOPE
...
Threading was broken if information was needed from References header.
For example, mailman might alter some Message-IDs when using its NNTP
bridge and the complete references are necessary to rebuild the thread,
which is only available in References whereas ENVELOPE has only
In-Reply-To.
4 years ago
Manos Pitsidianakis
b9f4d718c7
melib/sqlite3: reset db on version mismatch
4 years ago
Manos Pitsidianakis
d51d0187a6
melib/imap: change byte cache String -> Vec<u8>
4 years ago
Manos Pitsidianakis
cd68008e67
melib: Implement delete_messages for IMAP, Maildir
4 years ago
Manos Pitsidianakis
a1e3f269de
melib/imap: don't manually check for mailbox permissions
4 years ago
Manos Pitsidianakis
28deba708c
melib/imap: check if FETCH reply was intended for us
...
After sending a FETCH, the command results might be mixed with
unsolicited FETCH replies. Check if that happens.
4 years ago
Manos Pitsidianakis
ea0fb114e1
melib/imap: delete reverse_modseq storage
...
Modsequences are not unique, and many messages may share the same
modsequence. So storing a reverse mapping of modsequences to messages is
invalid.
4 years ago
Manos Pitsidianakis
98949a4a72
melib/imap: expand special mailbox detection cases
4 years ago
Manos Pitsidianakis
e518b3f16d
melib/imap: use SystemTime for IMAP server timeout
4 years ago
Manos Pitsidianakis
3618bdcffb
melib/imap: treat server input as bytes
...
Server input was assumed valid ascii and converted haphazardly to &str.
Don't do that, since it might not be valid UTF8.
4 years ago
Manos Pitsidianakis
0e2641f7ed
melib/imap: always retry connection in watch()
4 years ago
Manos Pitsidianakis
dee62cc118
melib/imap: fix NoSelect mailboxes not showing up as subscribed
4 years ago
Manos Pitsidianakis
17a4ccdcbc
melib/imap: perform reconnect on IDLE failure
4 years ago
Manos Pitsidianakis
670675edcc
melib/imap: impl LIST-EXTENDED
...
Closes #69
4 years ago
Manos Pitsidianakis
06a58a70bd
melib/imap: introduce a conf flag for server timeout
...
timeout integer (optional) Timeout to use for server connections in seconds. A timeout of 0 seconds means there's no timeout. (16)
4 years ago
Manos Pitsidianakis
96985c9c1f
melib/imap: set conn to Err if watch returns Err
4 years ago
Manos Pitsidianakis
5079881a4c
melib/imap: add tags to tag_index when setting new tags
4 years ago
Manos Pitsidianakis
6d9cdce923
melib/imap: don't fail utterly if cache fails on fetch
...
Show notice to user, and then try a fresh fetch. Also try resetting the
cache if possible.
4 years ago
Manos Pitsidianakis
7b324359c5
melib/imap: ignore case for supported capability report in
...
MailBackendExtensionStatus
4 years ago
Manos Pitsidianakis
4829e13c47
melib/maildir: impl copy_messages for Maildir
4 years ago
Manos Pitsidianakis
9e20f6556a
melib/imap: refactor command generation on copy_messages
4 years ago
Manos Pitsidianakis
b4fe34eacf
melib/imap: add ImapCache trait
4 years ago
Manos Pitsidianakis
e878c50af5
tools/imapshell: actually send LOGOUT instead of just closing socket
4 years ago
Manos Pitsidianakis
a37faf0bec
Fix imapconn IMAP shell binary
...
IMAP shell hasn't been working since updating IMAP to async. Now it
works by using block_on executor.
4 years ago
Manos Pitsidianakis
e9a80b32ac
melib/imap: small cleanups
4 years ago
Manos Pitsidianakis
96a3da3d7b
melib/imap: fix deflate feature flags
4 years ago
Manos Pitsidianakis
f7c9f21575
melib/imap: add CONDSTORE support
...
Closes #52
4 years ago
Manos Pitsidianakis
876e1bc510
melib/imap: turn ImapResponse From to TryFrom
4 years ago
Manos Pitsidianakis
94433cfc40
melib/backends: cleanup MailBackend trait definition
4 years ago
Manos Pitsidianakis
3eadaba34e
Replace old pseudo-async code with blocking rust async
4 years ago
Manos Pitsidianakis
a190805384
melib/backends: Add BackendEvent enum
4 years ago
Manos Pitsidianakis
dede8d2a9e
melib/imap: timeout when establishing connection
4 years ago
Manos Pitsidianakis
79b2b38e32
melib: add supports_submission backend capability
...
To be used by NNTP, JMAP and some IMAP servers with BURL capability
4 years ago
Manos Pitsidianakis
ec0153e7b2
melib: add protocol extension info in MailBackendCapabilities
4 years ago
Manos Pitsidianakis
3ac2c12e7a
Small fixes
4 years ago