Oregami
Repositories/oxedyne/fe2o3

oxedyne/fe2o3/fe2o3_net/src/imap/mod.rs

1.4 KiB, 9 runs

created by r1870400018:9842, which is this file's identity for as long as the history lasts, whatever it is later renamed to

download · who wrote it · its history

1//! IMAP4rev1 (RFC 3501): a server and a client.
2//!
3//! [`client`] connects out to somebody else's IMAP server and reads mail
4//! from it. [`server`] is the other direction -- a Thunderbird-compatible
5//! subset serving a local Hematite mailbox -- and is described below.
6//!
7//! # Server
8//!
9//! Implements the wire protocol and just enough of the command set to
10//! run a single Hematite mailbox in front of Thunderbird:
11//!
12//! - `CAPABILITY`, `NOOP`, `LOGOUT`
13//! - `LOGIN` (no SASL on the MVP)
14//! - `LIST`, `LSUB`, `SUBSCRIBE`, `UNSUBSCRIBE`
15//! - `SELECT`, `EXAMINE`, `CLOSE`
16//! - `STATUS`
17//! - `FETCH` and `UID FETCH` for the items Thunderbird actually asks
18//! for: `UID`, `FLAGS`, `RFC822.SIZE`, `INTERNALDATE`, `ENVELOPE`,
19//! `BODY[]`, `BODY.PEEK[]`, `BODY[HEADER.FIELDS (...)]`,
20//! `BODY.PEEK[HEADER.FIELDS (...)]`, `RFC822.HEADER`, `RFC822`.
21//! - `STORE` and `UID STORE` for `+FLAGS`, `-FLAGS`, `FLAGS`.
22//! - `UID SEARCH` (the trivial `ALL` and UID-range queries).
23//! - `APPEND` (synchronising and non-synchronising literals).
24//! - `EXPUNGE`, `CREATE`, `DELETE`.
25//!
26//! Out of scope for the MVP and not implemented: `IDLE`, `CONDSTORE`,
27//! `QRESYNC`, `BINARY`, `LITERAL+` quirks beyond plain pass-through,
28//! ACLs, quotas, namespace, sort, thread.
29//!
30//! [Written with AI entirely](https://need2know.ai/entirely-ai/code)\
31//! Anthropic Claude
32
33pub mod client;
34pub mod server;