The reader walks the MIME tree with its container context: alternative picks versions, related finds its root by start, attached multiparts stay whole, digest children are messages. Nesting deeper than 64 levels, counting enclosed messages, is refused, and over-deep parse results are taken apart iteratively so dropping them cannot overflow the stack. Composite parts with a Content-ID are cid targets. The writer keeps attachment parameters and Content-IDs, writes multipart and message attachments unencoded, and makes its own Message-ID. SMTP adds BODY=8BITMIME for 8-bit bodies and SMTPUTF8 when any header block at any depth is 8-bit. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
31 lines
651 B
TOML
31 lines
651 B
TOML
[package]
|
|
name = "ely-mail-engine"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
publish.workspace = true
|
|
|
|
[dependencies]
|
|
base64.workspace = true
|
|
getrandom.workspace = true
|
|
imap-proto.workspace = true
|
|
log.workspace = true
|
|
mail-builder.workspace = true
|
|
mail-parser.workspace = true
|
|
mail-send.workspace = true
|
|
nom.workspace = true
|
|
rustls.workspace = true
|
|
rustls-platform-verifier.workspace = true
|
|
smtp-proto = "0.2"
|
|
tokio.workspace = true
|
|
tokio-rustls.workspace = true
|
|
|
|
[dev-dependencies]
|
|
ely-platform.workspace = true
|
|
rcgen.workspace = true
|
|
tempfile.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|