Commit graph

175 commits

Author SHA1 Message Date
Jon Gjengset
abf820bfb9 Much better metadata docs 2021-03-06 10:54:22 -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
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
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
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
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
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
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
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
Lem
39b8087b3c
Update src/client.rs
Fix typo in fix for typo.

It's not 'data_times' or 'data_itmes'. It should be 'data_items'!

Co-Authored-By: Jon Gjengset <jon@thesquareplanet.com>
2019-10-18 20:31:34 +02:00
Lemm
e41b235387 Fix typo in documentation
data_times should be data_items for
function "status"
2019-10-18 20:23:10 +02:00
Bryce Fisher-Fleig
29fece1221 (security) Remove connect_insecure
In order to discourage folks from connecting securely, we're removing the
convenience method imap::connect_insecure.

Fear not\! For those who manage security in another way (aka a private network
or similar measures), it is still possible to connect without TLS by using the
imap::Client::new() method. See that method for examples of how to do this.
2019-09-24 08:13:17 -07:00
Bryce Fisher-Fleig
f15bdfb458 (feat) default feature for native_tls (aka openssl)
Establishes conditional compilation for all integration with the
native_tls crate in this crate. Since native_tls has been deeply
integrated into this crate for a long time, we want to maintain
backwards compatibility by making this feature part of the default.

For a consumer of this crate to "opt-out", including this in
cargo.toml:

```
[dependencies.imap]
version = 0.16.0        # Replace this with the correct version
default-features = false
```

See the conversation on Github for details on this approach:
https://github.com/jonhoo/rust-imap/issues/123
2019-09-24 08:13:17 -07:00
Bryce Fisher-Fleig
beb41d2f52 (feat) Provide example integration with Rustls crate
By checking this code in as an example, we can prevent bitrot as we continuously test this
in CI. It also demonstrates how to setup TLS without relying on platform specific dependencies
via native_tls crate.
2019-09-17 12:51:38 -07:00
avitex
ff48dc9755
Decrease alloc on auth resp parsing 2019-09-03 23:41:57 +10:00
Jon Gjengset
2aa8c87e35
Move to 2018 edition 2019-09-03 09:35:15 -04:00
avitex
1c51fbe3ac
Make clippy happy again 2019-09-02 23:44:18 +10:00
Lucas
3a5c2e9d91
Implemented new enumerated Capabilities from imap-proto crate. 2019-09-02 23:00:40 +10:00
Niklas Claesson
b35823da7c Fix quoting issue in LIST command 2019-04-28 21:59:55 +02:00
Jon Gjengset
a7a2798bf1
Merge pull request #110 from Emm54321/fix-noop
Handle unsolicited responses in noop.
2019-03-18 21:35:43 -04:00
Jon Gjengset
5577fa678e
for old Rust too 2019-03-17 12:43:11 -04:00
Jon Gjengset
1dd4b31fa2
clippy 2019-03-17 12:39:29 -04:00
Emmanuel Lesueur
5df0759446 Handle unsolicited responses in noop. 2019-03-16 13:31:52 +01:00
Seo Sanghyeon
d01eb40de0 Fix uid_fetch doc 2019-02-22 01:48:50 +09:00
Jon Gjengset
ead7d2173b
rustfmt beta 2018-12-10 10:14:09 -05:00
Jon Gjengset
5dc51ac6b1
Show example of how to use store to delete 2018-11-22 17:57:56 -05:00
Jon Gjengset
357603b15f
Empty string != "" 2018-11-22 17:57:41 -05:00
Jon Gjengset
2b17bc0538
Make all public methods generic over str ref 2018-11-22 17:57:05 -05:00
Jon Gjengset
bce4831ccb
Clippy clean 2018-11-22 14:27:07 -05:00
Jon Gjengset
fc935bf884
Simplify fetch a little 2018-11-22 14:03:29 -05:00
Jon Gjengset
5dd9dfe469
Even more doc updates 2018-11-22 14:00:58 -05:00