Why it matters
Email is part of a product workflow. Delivery failures, repeated sends and stale links can leave the user in a state your UI does not explain.
Email is part of the product when it carries sign-in links, receipts or warnings. Delivery failures and stale templates can become support incidents, so the send path needs more than a call to an API.
Decisions to make
- Distinguish transactional messages from marketing subscriptions.
- Choose sender identities and domain authentication.
- Decide which events need retries, deduplication and a visible delivery state.
- Separate critical transactional messages from marketing mail.
- Decide how templates are versioned, localized and previewed.
Build checklist
- Queue sends after the underlying transaction succeeds.
- Handle bounces and provider failures.
- Test the link, expiration and text-only version of every critical message.
- Track provider acceptance, bounces and complaints separately.
- Queue critical messages and make retries safe.
Common mistakes
- Sending directly in the request handler and assuming a successful API call means delivery.
- Marking a message delivered when the provider only accepted it.
- Including secrets or full sensitive records in email bodies.
Tools & references
4 starting points to compare or study. Check fit, maintenance, terms and current capabilities before choosing one.