Skip to main content
Every provider implements send({ to, subject, html, text?, from?, replyTo? }) and returns { id }. They use plain fetch, so they run on edge runtimes. SMTP needs Node.

Amazon SES

ses calls the SES v2 SendEmail API and signs the request with SigV4 using Web Crypto, so the AWS SDK is not needed. The from address must be a verified SES identity, and the account must be out of the SES sandbox to send to arbitrary recipients. Set endpoint to point at LocalStack.

Postmark

postmark uses the outbound message stream by default. Set messageStream for a transactional stream you created. The from address needs a confirmed sender signature.

Using them for OTP

emailOtpSender(provider) turns any of these into a sender for the unified OTP service.
Last modified on October 9, 2026