Commit Graph

693 Commits (03a1d5a9856c27f4ccd80a41c62e40919495f55b)

Author SHA1 Message Date
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 fadf20d7b1
NotificationType: add melib::ErrorKind 4 years ago
Manos Pitsidianakis 352f7505fc
melib/imap: don't poll \Noselect mailboxes for updates 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 7c6e3658c7
melib/imap: try NOOPing in connect() 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 d00055fdb1
melib/imap: update online instant only on server read IO 4 years ago
Manos Pitsidianakis 1751509739
melib/imap: prevent false IDLE wakeups
Prevent IDLE loop waking up when receiving continuation "+ " lines
4 years ago
Manos Pitsidianakis 5cd03fff0f
melib/email/parser: add mailing list parser module
Specifically, rfc2369 list header action list
4 years ago
Manos Pitsidianakis 927a0c3cc0
melib/imap: prevent panic in untagged fetch response 4 years ago
Manos Pitsidianakis faa12a2d41
melib/email/address: add contains_address,subaddress methods 4 years ago
Manos Pitsidianakis c0c588be9c
melib/maildir: add message flag initialize in bytes
Maildir flags from filesystem path was not set correctly on Envelope
initialization in maildir backend
4 years ago
Manos Pitsidianakis be57b65dae
melib/email: add flags arg to Mail::new 4 years ago
Manos Pitsidianakis d57dd9c98e
melib/email/address: return Option in get_display_name 4 years ago
Manos Pitsidianakis c6c0da7fcb
melib: cleanup commit
Cleanup melib module exports, add some document tests, change some
documentation.
4 years ago
Manos Pitsidianakis d14f26569e
melib/email/parser: Add rfc5322 compliant parser for MessageID 4 years ago
Manos Pitsidianakis 5d107db8b8
melib/email/parser: add new RFC5322 compliant parsers for header bodies 4 years ago
Manos Pitsidianakis 0de39cb658
melib/email/address: add constructors, and fix debug print 4 years ago
Manos Pitsidianakis 46c44ced96
line_break: check of eof in LB13 4 years ago
Manos Pitsidianakis f8f3f1817d
melib/notmuch: fix search
Search was not available, it had been left out of date
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 75f59ee726
melib/imap: split by lines when reading IDLE unsolicited responses 4 years ago
Manos Pitsidianakis be2d268a20
melib/imap: build uid<>msn cache in {select,examine}_mailbox() 4 years ago
Manos Pitsidianakis 209bd98814
melib/imap: fix cache not being updated in some events 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 f02dde46da
melib/error:Add ErrorKind::Timeout
Timeout errors lead to automatic restart of connections without
bothering the user about the details, compared to actual network errors.
4 years ago
Manos Pitsidianakis c6f11fb592
melib: update notify to 4.0.15 4 years ago
Manos Pitsidianakis e349882ea7
melib/email/parser: use SmallVec in encoded words 4 years ago
Manos Pitsidianakis 14663e46b9
Remove some old TODO comments 4 years ago
Manos Pitsidianakis 4217839155
melib/email: remove Envelope::from_token 4 years ago
Manos Pitsidianakis 1df25f36ef
melib/email: case insensitive match on charset from bytes 4 years ago
Manos Pitsidianakis 96a3da3d7b
melib/imap: fix deflate feature flags 4 years ago
Manos Pitsidianakis f7ac1703e8
melib/notmuch: add watch/refresh methods to backend 4 years ago
Manos Pitsidianakis 974836776d
melib/email: trim raw input for some fields 4 years ago
Manos Pitsidianakis 341ff9164b
melib/notmuch: add Message,TagIterator,Thread types 4 years ago
Manos Pitsidianakis 8c6c9806b5
Fix some clippy lints 4 years ago
Manos Pitsidianakis fc25c7b165
Fix compiler warnings 4 years ago
Manos Pitsidianakis f7c9f21575
melib/imap: add CONDSTORE support
Closes #52
4 years ago
Manos Pitsidianakis 1ca0bd0d96
sqlite3: add schema versioning
To potentially be used with automatic migrations on version update
4 years ago
Manos Pitsidianakis 8d50e83a33
melib/email: add case-insensitive Header struct
- HeaderName is either 32 or less inlined bytes or heap-allocated vec for more than that.
- Equality and hashing is case-insensitive
- A HeaderMap is a hashmap from HeaderName to Strings that can be
indexed with &str, case insensitive. Insertion order is also preserved
4 years ago
Manos Pitsidianakis 0f3bf858a3
melib/imap: impl UNSELECT via nonexistent mailbox 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 9928ee78e7
Add Reply{ToAuthor,ToAll} actions
- previous Reply action now lets you select recipients by default
- ReplyToAuthor selects the Envelope author as recipient
- ReplyToAll selects all addresses
4 years ago
Manos Pitsidianakis 9afbdd4887
Add insert_user_agent option in composing
Add option for automatically inserting a 'User-Agent' header in new
drafts.
4 years ago
Manos Pitsidianakis be31d35ff6
melib/line_break: fix missing Break on B2 class
Graphemes of B2 class, such as the Em dash can break before and after.
However this case wasn't handled in the line break iterator.
4 years ago
Manos Pitsidianakis dede8d2a9e
melib/imap: timeout when establishing connection 4 years ago
Manos Pitsidianakis d1a9f4e28a
melib/collection: remove unnecessary mut references 4 years ago
Manos Pitsidianakis b9e53a7451
melib/smtp: add recipient argument in mail_transaction() 4 years ago
Manos Pitsidianakis 30c390443a
melib: Add native_tls behind feature
native_tls error conversion was held behind `imap_backend` feature, but
tls is also used in smtp.
4 years ago
Manos Pitsidianakis 1affee183a
melib/nntp: fetch all articles of group 4 years ago
Manos Pitsidianakis 92a9127758
melib/notmuch: don't read messages to String 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 560f9e5399
melib/email: parse empty attachments correctly 4 years ago
Manos Pitsidianakis c0f8bc1aed
melib/email/attachments: add Content-Disposition 4 years ago
Manos Pitsidianakis b2c14abd6e
melib/jmap: add {flag,tag} set support
Closes #61
4 years ago
Manos Pitsidianakis a712bf6c3c
melib/jmap: make backend async
Replace reqwest with isahc which supports async IO
4 years ago
Manos Pitsidianakis 6d61d0651c
melib/jmap: add special keywords to search 4 years ago
Manos Pitsidianakis c88eac1cc5
melib/jmap: implement search
Closes #59
4 years ago
Manos Pitsidianakis 5485e7b941
melib/notmuch: fetch mail in chunks
notmuch fetch took too much time on large mailboxes because it sent the
result as one big vec, instead of chunking it.
4 years ago
Manos Pitsidianakis e8a98f87e3
Change version to 0.6.1 4 years ago
Manos Pitsidianakis 890000bd0e
status page: trim extension name at 30 chars
NNTP has some long protocol extension names
4 years ago
Manos Pitsidianakis 1bdecd62c7
melib/nntp: add AUTH support 4 years ago
Manos Pitsidianakis ce45cf5f17
melib/{imap,nntp}: flush after write_all
IMAP IDLE got stuck, because the IDLE connection used `send_raw` that
didn't flush output after `write_all`, *if* DEFLATE was on. DEFLATE
needs to flush output.
4 years ago
Manos Pitsidianakis ec0153e7b2
melib: add protocol extension info in MailBackendCapabilities 4 years ago
Manos Pitsidianakis 2b3949ddb2
melib: add missing cfg attribute for NNTP 4 years ago
Manos Pitsidianakis 522f667350
melib: add experimental NNTP backend
Closes #54
4 years ago
Manos Pitsidianakis 93d9c195cc
Change version to 0.6.0 4 years ago
Manos Pitsidianakis 3ac2c12e7a
Small fixes 4 years ago
Manos Pitsidianakis 5c038887db
melib/imap: add MOVE support 4 years ago
Manos Pitsidianakis 5ec7c59d8a
melib/threads: re-add to missing_message_ids on remove 4 years ago
Manos Pitsidianakis 9a29f4245f
melib/imap: add COMPRESS=DEFLATE support
Closes #53
4 years ago
Manos Pitsidianakis d8f2a08e7b
melib/smtp: add serde field default values 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 32b4c30fee
melib/email.rs: use SmallVec for Address fields 4 years ago
Manos Pitsidianakis 52cec59215
melib/error: add From<&MeliError> for MeliError 4 years ago
Manos Pitsidianakis cc119c19b0
melib/maildir: send NewFlags events 4 years ago
Manos Pitsidianakis 031e81ac8f
imap: add UntaggedResponse::UIDFetch 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 246ac4b84a
Update smallvec dependency to 1.4.1 4 years ago
Manos Pitsidianakis 1b8529c59c
melib/imap: use LITERAL+ with APPEND
Closes #50
4 years ago
Manos Pitsidianakis 99fbac3806
Remove unused variables/functions 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