EnumsΒ§
- Template
Replacements π
ConstantsΒ§
- BASE_
BACKOFF_ πSECS - BATCH_
SIZE π - JITTER_
SECS π - MAX_
BACKOFF_ πSECS - RECIPIENT_
ADDRESS_ πPURGE_ INTERVAL - How often the sender asks the model to purge expired recipient addresses. The model then rolls its own 1 in 10 chance, so a sweep lands roughly every ten hours.
StaticsΒ§
- BASE_
URL π - The same variable the server reads into
ApplicationConfiguration::base_url: a mailed link has to point at the environment that minted its token. NotFRONTEND_BASE_URL, which no overlay sets, so reading that sends dev and test links to production. - DB_URL π
- SMTP_
FROM π - SMTP_
HOST π - SMTP_
MESSAGE_ πID_ DOMAIN - SMTP_
PASS π - SMTP_
PLAINTEXT_ πPORT - When set, mail goes to
SMTP_HOSTon this port without TLS, for the local Mailpit in dev and test. Unset, the sender uses implicit TLS on port 465. - SMTP_
USER π
FunctionsΒ§
- build_
email_ πmessage - compute_
next_ πretry_ at - extract_
smtp_ πerror_ details - has_
io_ πerror - infer_
email_ πdomain - is_
transient_ πsmtp_ error - mail_
sender - Sends one batch of due emails.
warned_layoutsis theupdated_atof each layout last checked for problems, so each version is warned about once rather than every batch. - main
- placeholder_
bag_ πreplacements - Turns a deliveryβs placeholder bag into
{{KEY}}substitutions. Nested objects and arrays are skipped: there is no sensible rendering for them in body text. - record_
message_ πbuild_ failure - record_
non_ πretryable_ failure - retry_
window_ πexpired - send_
message - template_
replacements π - warn_
about_ πlayout_ problems