Commit Graph

143 Commits (92c12d3526d5fdf4a4eaaf49f91ecd718074cb06)

Author SHA1 Message Date
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
Manos Pitsidianakis 5c038887db
melib/imap: add MOVE support 4 years ago
Manos Pitsidianakis 9a29f4245f
melib/imap: add COMPRESS=DEFLATE support
Closes #53
4 years ago
Manos Pitsidianakis 8ec0da4fbd
melib/imap: add conf toggle flags for IMAP extensions 4 years ago
Manos Pitsidianakis 7bbfd188ef
melib/imap: move current_mailbox to ImapStream
ImapStream holds the connection state (current command id), so it makes
sense to move current_mailbox state there. That way, when a connection
drops for whatever reason the old current_mailbox is dropped and not
carried over to new connections.
4 years ago
Manos Pitsidianakis f41a1ffe3a
imap: remove FLAGS.SILENT from STOREs
Flag updates were not received, because FLAGS.SILENT was used.
4 years ago
Manos Pitsidianakis 3f8aa560f0
melib/MailBackend: add MailBackendCapabilities struct 4 years ago
Manos Pitsidianakis 5a5408ecd5
imap: small fixes 4 years ago
Manos Pitsidianakis 00acba7717
melib/MailBackend: add copy_messages,set_flags,delete_messages methods 4 years ago
Manos Pitsidianakis 1b8529c59c
melib/imap: use LITERAL+ with APPEND
Closes #50
4 years ago
Manos Pitsidianakis 0ee3a0bf79
imap: clear mesage totals when fetching entire mailbox
Totals might have been set after a STATUS response, meaning we know the
totals without knowing exactly what message UIDs are there. Clear the
totals, and start inserting UIDs instead.
4 years ago
Manos Pitsidianakis 6121f77853
imap: support LIST-STATUS 4 years ago
Manos Pitsidianakis 350c8033b1
imap: use ImapLineIterator in imap_mailboxes() 4 years ago