# mailcore

The open-source Rust engine at the heart of [Korax](../) — a PGP-first email client.

This library handles everything below the UI layer: IMAP, SMTP, MIME parsing, local SQLite storage, and DNS auto-discovery. It is published here for transparency and community audit.

## What's here

| Module | Description |
|---|---|
| `src/imap/` | RFC 3501 IMAP client, UIDVALIDITY-aware, uses `BODY.PEEK[]` to preserve `\Seen` flag integrity |
| `src/smtp/` | RFC 5321 SMTP with STARTTLS and SMTPS |
| `src/storage/` | SQLite message cache, folder state, account credentials |
| `src/mime/` | RFC 2045/2046 multipart MIME parser |
| `src/dns/` | SRV auto-discovery (`_imaps._tcp`, `_submission._tcp`) — same mechanism used by Thunderbird and Evolution |
| `src/session_manager.rs` | Shared IMAP session pool |
| `src/api.rs` | Public FFI surface (consumed via `flutter_rust_bridge`) |

## What's not here

PGP/Sequoia integration and advanced privacy features live in a separate proprietary crate (`mailmore`) and are not published.

## License

Published under the **PolyForm Noncommercial License 1.0.0** — free to read, study, and use for noncommercial purposes. See the [LICENSE](../LICENSE) file in the root of this repository. Commercial use requires a separate agreement with the author.

© Eugen Kaparulin. All rights reserved.
