[package]
name = "monetize-mail"
description = "monetize's one mail path: an SMTP submission relay, TLS always, the relay's acceptance as the audit record"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
repository.workspace = true
license.workspace = true
authors.workspace = true
# On crates.io (A3, 2026-10-26): Holger's server-lib takes it from the registry (feature
# `egress`), so a lone clone of Holger builds.
publish = true
[dependencies]
# **The mailer, and why exactly these features** (moved from monetize-impl's
# signup sink with the code, 2026-09-29).
#
# `default-features = false` because lettre's default set turns on
# `native-tls`, which is openssl on Linux — a C library and a second TLS stack
# beside the rustls this workspace already carries. The LAW's "pure Rust 100%"
# is not satisfied by a crate that links libssl.
#
# * `smtp-transport` + `builder` — compose a message, hand it to a relay.
# * `rustls-tls` + `ring` + `webpki-roots` — rustls over the crypto provider
# tonic's `tls-ring` already pulls in; roots compiled in, because the front
# is a static binary with no certificate directory the deploy manages.
#
# Not enabled: `hostname` (the EHLO name is the sender's domain, see
# `Mailer::with_root`), `pool`, the async transports, `dkim` (the relay signs).
lettre = { version = "0.11", default-features = false, features = [
"smtp-transport",
"builder",
"rustls-tls",
"ring",
"webpki-roots",
] }
# `MONETIZE_SMTP_URL` is read HERE, not by `SmtpTransport::from_url`: lettre
# reads a bare `smtp://` as plaintext-forever, which is the 2026-09-15 defect.
url = "2"
percent-encoding = "2"
# **The way out of a box behind its front** (feature `egress`, off by default; P4c, A28 M11):
# lettre speaks no proxy, so a box laid with no public IPv4 dials a loopback forward carried
# through its front's egress door (`nordisk_pairing::egress::Forward`), naming the RELAY in its
# TLS. The default build links no nordisk-pairing and dials nothing but the configured relay.
nordisk-pairing = { version = "0.5.26", path = "../../../Skidbladnir/crates/installer/nordisk-pairing", default-features = false, optional = true }
[features]
default = []
# A sold box's sign-in-again mail through its front's door (Holger today; Gunnar's postman in T16).
egress = ["dep:nordisk-pairing"]
[dev-dependencies]
# A standard MIME parser reads a composed notice back (the ready mail, 2026-10-14).
mail-parser = "0.11"