67
|
1
|
use jmap_client::{client::Client, core::query::Filter, email, mailbox}; |
|
2
|
#[tokio::main] |
|
3
|
async fn main() { |
|
4
|
let client = Client::new() |
|
5
|
.credentials(("ellis", "2pldn")) |
|
6
|
// .credentials(Credentials::bearer(" |
|
7
|
// 3XBDZ39pSQfrthH14cIFilI9raBN65zC8UKxcL2rp1XotT16FiN8yJVaFkabKL1h")) |
|
8
|
.connect("https://mail.compiler.company:8080") |
|
9
|
.await |
|
10
|
.unwrap(); |
|
11
|
println!( |
|
12
|
"{:?}", |
|
13
|
client |
|
14
|
.email_query( |
|
15
|
Filter::and([email::query::Filter::has_keyword("$draft")]).into(), |
|
16
|
[email::query::Comparator::from()].into() |
|
17
|
) |
|
18
|
.await |
|
19
|
.unwrap() |
|
20
|
.take_ids() |
|
21
|
); |
|
22
|
// Query mailboxes to obtain Inbox and Trash folder id |
|
23
|
let inbox_id = client |
|
24
|
.mailbox_query( |
|
25
|
mailbox::query::Filter::role(mailbox::Role::Inbox).into(), |
|
26
|
None::<Vec<_>>, |
|
27
|
) |
|
28
|
.await |
|
29
|
.unwrap() |
|
30
|
.take_ids() |
|
31
|
.pop() |
|
32
|
.unwrap(); |
|
33
|
let trash_id = client |
|
34
|
.mailbox_query( |
|
35
|
mailbox::query::Filter::role(mailbox::Role::Trash).into(), |
|
36
|
None::<Vec<_>>, |
|
37
|
) |
|
38
|
.await |
|
39
|
.unwrap() |
|
40
|
.take_ids() |
|
41
|
.pop() |
|
42
|
.unwrap(); |
|
43
|
|
|
44
|
println!("Inbox: {:?}", inbox_id); |
|
45
|
println!("Trash: {:?}", trash_id); |
|
46
|
} |