Commit graph

232 commits

Author SHA1 Message Date
Jon Gjengset
6e19d3a6d9 Note looking for maintainers 2021-03-06 15:08:14 -08:00
Jon Gjengset
18ca65dd3f Expose mailbox read-only flag 2021-03-06 15:02:48 -08:00
Jon Gjengset
9b78550394 Adopt latest imap_proto and expose error status codes 2021-03-06 14:53:14 -08:00
Jon Gjengset
d543993062 Fix CI link 2021-03-06 10:56:33 -08:00
Jon Gjengset
abf820bfb9 Much better metadata docs 2021-03-06 10:54:22 -08:00
Jon Gjengset
6fbbcb88f3 Fix up metadata depth enum 2021-03-06 09:51:18 -08:00
Jon Gjengset
9a24ca4125 Fix compile with newer imap_proto 2021-03-06 09:48:11 -08:00
Jon Gjengset
3cf13d2260 cargo fmt 2021-03-06 09:44:56 -08:00
Jon Gjengset
a466e947bd
Merge branch 'master' into metadata-merge 2021-03-06 12:43:43 -05:00
Jon Gjengset
137f3de14f
Merge branch 'master' into mod_seq_vanished 2021-03-06 12:40:30 -05:00
Jon Gjengset
0a2f7407f2
Merge pull request #175 from mblarsen/refactor/squash-append-cmd
refactor: squash append command
2021-03-06 12:39:29 -05:00
Jon Gjengset
6935c51b2b
Merge branch 'master' into more-unilaterals 2021-03-06 12:37:52 -05:00
Milo Mirate
9b6ff70e3b
Avoid trying to FETCH an empty set of messages (#177)
Also, apply correct validation to FETCH arguments.
2021-01-12 23:30:38 -05:00
Michael Bøcker-Larsen
b2f2e297c2
docs: improve docs 2020-12-21 11:21:40 +08:00
Michael Bøcker-Larsen
8cd8a21008
refactor: rename run to finish 2020-12-21 11:21:22 +08:00
Michael Bøcker-Larsen
029da6fd52
refactor: move must_use to AppendCmd 2020-12-21 11:19:42 +08:00
Michael Bøcker-Larsen
19af971c9a
refactor: use extend instead of append
Co-authored-by: Jon Gjengset <jon@thesquareplanet.com>
2020-12-21 10:37:18 +08:00
Michael Bøcker-Larsen
74ef623fc5
docs: move flag + date documentation to AppendCmd 2020-12-20 13:09:57 +08:00
Michael Bøcker-Larsen
5053cfbb3e
feat: add 'flags' method to add multiple flags at once 2020-12-20 13:04:31 +08:00
Michael Bøcker-Larsen
b7bc842979
fix: correct lifetimes and types for append 2020-12-20 13:03:54 +08:00
Michael Bøcker-Larsen
e6341ccfc0
fix: pass session as &mut 2020-12-17 11:37:01 +08:00
Michael Bøcker-Larsen
cdf320fb0c
refactor: use AppendCmd instead of AppendOptions 2020-12-17 11:02:48 +08:00
Michael Bøcker-Larsen
24445c5c65
feat: add AppendCmd builder 2020-12-17 00:41:26 +08:00
Michael Bøcker-Larsen
469d338d5d
refactor: combine all append_* + introduce AppendOptions 2020-12-17 00:41:01 +08:00
Michael Bøcker-Larsen
ee56c8e42b
feat: allow setting sent date on APPEND (#174)
Fixes #60
2020-12-15 11:25:38 -05:00
Todd Mortimer
166a0cb6b3 Link to QRESYNC RFC section describing VANISHED vs EXPUNGE responses. 2020-12-06 15:49:11 -05:00
Todd Mortimer
a9788ad1e0 Add a Deleted type to wrap EXPUNGE and VANISHED responses.
EXPUNGE may return either a series of EXPUNGE responses each with
a single message sequence number, or a VANISHED response with a
sequence set of UIDs. This adds a wrapper enum and some associated
iterators to make it easy to handle these in the client.
2020-12-05 20:32:14 -05:00
Todd Mortimer
d381723deb Add non_exhaustive to Mailbox. 2020-11-14 16:52:03 -05:00
mordak
22dae40ab5
Fix typo in doc comment
Co-authored-by: Jon Gjengset <jon@thesquareplanet.com>
2020-11-14 16:45:50 -05:00
Todd Mortimer
c49e78b4d0 Update imap-proto and nom dependencies.
Add support for HIGHESTMODSEQ (RFC 4551) and VANISHED (RFC 7162),
which allows users to quickly synchronize to a mailbox by fetching
only changes since the last known highest mod sequence.
2020-11-11 11:37:33 -05:00
Todd Mortimer
b11b08954c Fix clippy manual_non_exhaustive lint. 2020-11-11 11:34:42 -05:00
Todd Mortimer
753e1b9db1 Fix trivial clippy warnings. 2020-11-11 11:25:21 -05:00
mordak
ae07c9f31c
Add append_with_flags (#171)
Allows a client to set flags on a new message as it is appended to a mailbox.
2020-08-23 12:02:57 -04:00
timando
5794b0f871
Re-export Result and Error types (#170) 2020-07-27 09:28:02 -04:00
Christian Krause
45a8fcf27e
Add note about server greeting to Client::new 2020-06-22 08:03:56 +02:00
sergey
a29b6f0cce Adding METADATA support 2020-05-19 15:58:43 +03:00
Remy Vuong
d6a6592420 Changed: a typo was fixed 2020-05-19 10:41:38 +02:00
Jon Gjengset
cf4aed569b
Make UnsolicitedResponse non_exhaustive
That way, as we discover additional unilateral responses in the future,
we won't have to make a breaking change to add them.
2020-05-18 14:12:36 -04:00
Jon Gjengset
0c3ce7943d
Expose unilateral mailbox flag changes
This is a backwards incompatible change, since it adds a variant to a
public enum.
2020-05-18 14:12:13 -04:00
Jon Gjengset
464c59e6c1
Expunge holds a Seq 2020-05-18 14:10:28 -04:00
Jon Gjengset
b74bfa79c6
FLAGS can be sent as unilateral response
Fixes #161 (well, the side-issue in #161).
2020-05-18 14:03:16 -04:00
Massimo Redaelli
80a0aae69d Support timing out wait on IDLE 2020-05-12 09:53:13 +02:00
Todd Mortimer
746bdfe6b9 Handle Dovecot's periodic IDLE notification messages ("OK Still here").
These messages show up at an interval controlled by Dovecot's
imap_idle_notify_interval setting, which defaults to 2 minutes.
These messages were causing the IDLE loop to exit prematurely
because it looks like a notification response from the server.
2020-04-19 10:25:41 -04:00
Todd Mortimer
41c0eb91d6 Make Display implementation independent of deprecated Error::description.
Allow use of deprecated in existing Error::description implementation to
suppress warnings.
2020-03-29 19:27:07 -04:00
Jon Gjengset
949ea3bd6b
Bump dependencies
This also pulls in imap-proto 0.11, which exposes message envelopes as
`&[u8]` instead of `&str`. This directly affects our public API.
2020-02-20 12:49:25 -05:00
Dillen Meijboom
391caf042a
Ignore server comments 2020-02-20 17:22:53 +01:00
Celti Burroughs
a4b03568be
Add imap::connect_starttls convenience function
Add a `imap::connect_starttls` convenience function, with the same
syntax as `imap::connect`, to make STARTTLS connections as easily as
IMAPS.

PR#140 removed `imap::connect_insecure` with the stated goal of
encouraging users to connect securely. With that change, users are
forced to construct their own `TcpStream`s when interacting with
non-IMAPS servers.

This change may perversely incentivise the use of insecure connections,
instead of discouraging them, as users may blindly copy-paste code
involving `Client::new` and `TcpStream`s so things "just work", without
the visual indicator of `_insecure` suggesting something is wrong.

Tangentially, [RFC 2595] encourages using STARTTLS instead of raw SSL
sockets. Ideally, we should support both options equally well.

[RFC 2595]: https://tools.ietf.org/html/rfc2595#section-7
2019-11-30 05:18:05 -07:00
sergey
18526ffb61 Add bodystructure exposing function to Fetch structure. 2019-10-29 13:55:07 +02:00
Friedel Ziegelmayer
465481de88 fix(auth): handle single + response (#145) 2019-10-21 10:49:15 -04:00
Friedel Ziegelmayer
0e5aa5c004 feat: expose read_greeting (#144)
This is sometimes needed when manually using `Client::new()`.

We enforce that the greeting is read at most once.
2019-10-21 10:13:39 -04:00