`mail: { to, subject, body }` on a state in aggregates.yaml sends when a
record enters that state, `to: submitter` or one address, templates
over the record's fields plus {site}, {chain}, {email}. An invite mails
its one-time link built in, reworded by `mail.invite` in site.yaml,
which also carries the sender (`mail.from`, `mail.reply_to`); without
it a site sends nothing and says so in the log. Portal renders the
text and an HTML alternative and publishes one message per state
change on portal.mail.send in the WORMHOLE stream, id <bucket>:<record>
:<state> so a retried transition sends once; uhhm/gdo holds the
durable consumer and talks SMTP. The lint requires a required email
field on every form recording into a bucket that mails the submitter.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L4jrCgLiKKHAEFuZUJjckH
40 lines
628 B
Rust
40 lines
628 B
Rust
pub mod answers;
|
|
pub mod app;
|
|
pub mod auth;
|
|
pub mod chain;
|
|
pub mod content;
|
|
pub mod events;
|
|
pub mod i18n;
|
|
pub mod resource;
|
|
|
|
#[cfg(feature = "ssr")]
|
|
pub mod aggregates;
|
|
|
|
#[cfg(feature = "ssr")]
|
|
pub mod announce;
|
|
|
|
#[cfg(feature = "ssr")]
|
|
pub mod http;
|
|
|
|
#[cfg(feature = "ssr")]
|
|
pub mod access;
|
|
|
|
#[cfg(feature = "ssr")]
|
|
pub mod people;
|
|
|
|
#[cfg(feature = "ssr")]
|
|
pub mod mail;
|
|
|
|
#[cfg(feature = "ssr")]
|
|
pub mod server;
|
|
|
|
#[cfg(feature = "ssr")]
|
|
pub mod upload;
|
|
|
|
#[cfg(feature = "hydrate")]
|
|
#[wasm_bindgen::prelude::wasm_bindgen]
|
|
pub fn hydrate() {
|
|
console_error_panic_hook::set_once();
|
|
leptos::mount::hydrate_body(app::App);
|
|
}
|