pub(super) async fn send_email_token(
services: &Services,
client: IpAddr,
client_secret: &str,
email_canon: &str,
send_attempt: u64,
) -> Result<OwnedSessionId>Expand description
Shared requestToken spine for the email medium: throttle both axes, open or reuse a pending verification, and send the magic-link message when a token is freshly minted. The caller supplies the already-canonicalized address and performs its own directional in-use / not-found check beforehand.