sofie-mail 0.4.0

Mail: messages rendered from templates, sent by a job over SMTP, to the log or to a test's outbox.
Documentation
[package]
name = "sofie-mail"
description = "Mail: messages rendered from templates, sent by a job over SMTP, to the log or to a test's outbox."
edition.workspace = true
rust-version.workspace = true
version.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true

[features]
# Each mail rereads its template's source, so an edit shows without a rebuild.
development = ["sofie-engine/parse"]
metrics = ["sofie-telemetry/metrics"]
# Mails and their texts in the recipient's language (`translations`, `Mailer::in_language`).
i18n = ["sofie-engine/i18n"]
# A fake transport with an outbox, and SMTP trusting a test's own root certificate.
testing = []
# `web::routes`: the unsubscribe page and its one-click POST, and webhooks for a
# provider's bounces and complaints.
web = ["dep:ring", "dep:sofie-http", "sofie-http/resources", "sofie-http/signed-links", "sofie-http/webhooks"]

[dependencies]
ring = { workspace = true, optional = true }
sofie-auth.workspace = true
sofie-core.workspace = true
sofie-db = { workspace = true, features = ["idempotency", "jobs"] }
sofie-engine.workspace = true
sofie-http = { workspace = true, optional = true }
sofie-telemetry.workspace = true
sofie-values.workspace = true
jiff.workspace = true
rustls.workspace = true
serde = { workspace = true, features = ["derive"] }
serde_json.workspace = true
tokio = { workspace = true, features = ["io-util", "net", "time"] }
tokio-rustls.workspace = true
tracing.workspace = true
webpki-roots.workspace = true

[dev-dependencies]
sofie-engine = { path = "../sofie-engine", features = ["parse"] }
sofie-mail = { path = ".", features = ["testing", "web"] }
sofie-telemetry = { path = "../sofie-telemetry", features = ["capture"] }
sofie-http = { path = "../sofie-http", default-features = false }
sofie-testing = { path = "../sofie-testing", features = ["mail"] }
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }

[lints]
workspace = true

[package.metadata.docs.rs]
all-features = true