Manos Pitsidianakis
92a9127758
melib/notmuch: don't read messages to String
2020-08-09 20:29:55 +03:00
Manos Pitsidianakis
79b2b38e32
melib: add supports_submission backend capability
...
To be used by NNTP, JMAP and some IMAP servers with BURL capability
2020-08-09 14:56:34 +03:00
Manos Pitsidianakis
560f9e5399
melib/email: parse empty attachments correctly
2020-08-09 09:50:20 +03:00
Manos Pitsidianakis
c0f8bc1aed
melib/email/attachments: add Content-Disposition
2020-08-09 09:49:32 +03:00
Manos Pitsidianakis
b2c14abd6e
melib/jmap: add {flag,tag} set support
...
Closes #61
2020-08-09 09:47:01 +03:00
Manos Pitsidianakis
a712bf6c3c
melib/jmap: make backend async
...
Replace reqwest with isahc which supports async IO
2020-08-07 13:51:44 +03:00
Manos Pitsidianakis
6d61d0651c
melib/jmap: add special keywords to search
2020-08-06 21:13:20 +03:00
Manos Pitsidianakis
c88eac1cc5
melib/jmap: implement search
...
Closes #59
2020-08-06 19:46:46 +03:00
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.
2020-08-02 16:52:19 +03:00
Manos Pitsidianakis
e8a98f87e3
Change version to 0.6.1
2020-08-02 01:25:06 +03:00
Manos Pitsidianakis
890000bd0e
status page: trim extension name at 30 chars
...
NNTP has some long protocol extension names
2020-08-02 00:48:44 +03:00
Manos Pitsidianakis
1bdecd62c7
melib/nntp: add AUTH support
2020-08-02 00:44:45 +03:00
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.
2020-08-02 00:22:15 +03:00
Manos Pitsidianakis
ec0153e7b2
melib: add protocol extension info in MailBackendCapabilities
2020-08-02 00:22:15 +03:00
Manos Pitsidianakis
2b3949ddb2
melib: add missing cfg attribute for NNTP
2020-08-02 00:22:15 +03:00
Manos Pitsidianakis
522f667350
melib: add experimental NNTP backend
...
Closes #54
2020-07-30 20:58:53 +03:00
Manos Pitsidianakis
93d9c195cc
Change version to 0.6.0
2020-07-29 20:17:59 +03:00
Manos Pitsidianakis
3ac2c12e7a
Small fixes
2020-07-29 14:33:09 +03:00
Manos Pitsidianakis
5c038887db
melib/imap: add MOVE support
2020-07-29 01:19:08 +03:00
Manos Pitsidianakis
5ec7c59d8a
melib/threads: re-add to missing_message_ids on remove
2020-07-28 17:39:25 +03:00
Manos Pitsidianakis
9a29f4245f
melib/imap: add COMPRESS=DEFLATE support
...
Closes #53
2020-07-28 17:39:25 +03:00
Manos Pitsidianakis
d8f2a08e7b
melib/smtp: add serde field default values
2020-07-27 15:06:57 +03:00
Manos Pitsidianakis
8ec0da4fbd
melib/imap: add conf toggle flags for IMAP extensions
2020-07-27 15:06:57 +03:00
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.
2020-07-27 15:06:56 +03:00
Manos Pitsidianakis
32b4c30fee
melib/email.rs: use SmallVec for Address fields
2020-07-27 15:06:56 +03:00
Manos Pitsidianakis
52cec59215
melib/error: add From<&MeliError> for MeliError
2020-07-27 15:04:29 +03:00
Manos Pitsidianakis
cc119c19b0
melib/maildir: send NewFlags events
2020-07-26 16:09:41 +03:00
Manos Pitsidianakis
031e81ac8f
imap: add UntaggedResponse::UIDFetch
2020-07-26 16:09:41 +03:00
Manos Pitsidianakis
f41a1ffe3a
imap: remove FLAGS.SILENT from STOREs
...
Flag updates were not received, because FLAGS.SILENT was used.
2020-07-26 16:09:41 +03:00
Manos Pitsidianakis
3f8aa560f0
melib/MailBackend: add MailBackendCapabilities struct
2020-07-25 17:53:04 +03:00
Manos Pitsidianakis
5a5408ecd5
imap: small fixes
2020-07-25 15:19:53 +03:00
Manos Pitsidianakis
00acba7717
melib/MailBackend: add copy_messages,set_flags,delete_messages methods
2020-07-25 15:19:53 +03:00
Manos Pitsidianakis
246ac4b84a
Update smallvec dependency to 1.4.1
2020-07-25 15:19:52 +03:00
Manos Pitsidianakis
1b8529c59c
melib/imap: use LITERAL+ with APPEND
...
Closes #50
2020-07-25 15:17:35 +03:00
Manos Pitsidianakis
99fbac3806
Remove unused variables/functions
2020-07-23 13:39:58 +03:00
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.
2020-07-23 13:23:24 +03:00
Manos Pitsidianakis
6121f77853
imap: support LIST-STATUS
2020-07-23 13:23:24 +03:00
Manos Pitsidianakis
350c8033b1
imap: use ImapLineIterator in imap_mailboxes()
2020-07-23 13:23:23 +03:00
Manos Pitsidianakis
e49c293b01
imap: impl DoubleEndedIterator for ImapLineIterator
2020-07-23 13:23:23 +03:00
Manos Pitsidianakis
b9343dfb32
imap: update supported capabilities
2020-07-23 13:23:23 +03:00
Manos Pitsidianakis
0882dbbad0
melib/Collection: put all fields behind a mutex
2020-07-23 13:23:23 +03:00
Manos Pitsidianakis
1112ef4717
melib/Collection: remove unused fields
2020-07-23 13:23:23 +03:00
Manos Pitsidianakis
fadb3634e0
melib: take MailboxHash instead of &Mailbox in fetch*()
2020-07-23 13:23:23 +03:00
Manos Pitsidianakis
9103d05617
melib: s/get/fetch in MailBackend methods
2020-07-18 12:34:13 +03:00
Manos Pitsidianakis
0a7f283582
imap: prevent deadlock in watch::examine_updates
...
uid_store.mailboxes was locked before calling examine_updates, which
calls examine_mailbox() which also attempts to lock uid_store.mailboxes
2020-07-17 22:45:25 +03:00
Manos Pitsidianakis
c6c2865a54
melib/thread/iterators: remove recursion in favor of loops
2020-07-17 13:33:40 +03:00
Manos Pitsidianakis
32f196143e
melib: add supports_search() method to MailBackend
2020-07-17 00:02:02 +03:00
Manos Pitsidianakis
d3391e96c0
mbox: send envelope payload in chunks
2020-07-16 17:59:27 +03:00
Manos Pitsidianakis
77dc1d74bf
Add smtp client support for sending mail in UI
...
`mailer_command` was removed, and a new setting `send_mail` was added.
Its possible values are a string, consisting of a shell command to
execute, or settings to configure an smtp server connection. The
configuration I used for testing this is:
[composing]
send_mail = { hostname = "smtp.mail.tld", port = 587, auth = { type = "auto", username = "yoshi", password = { type = "command_eval", value = "gpg2 --no-tty -q -d ~/.passwords/msmtp/yoshi.gpg" } }, security = { type = "STARTTLS" } }
For local smtp server:
[composing]
send_mail = { hostname = "localhost", port = 25, auth = { type = "none" }, security = { type = "none" } }
2020-07-15 15:24:01 +03:00
Manos Pitsidianakis
08c462801d
melib/mbox: fix not updating mailbox_index on new envelope
2020-07-15 15:22:33 +03:00