By request
Transactional email
Emails from your code via an HTTP API: password resets, receipts, notifications. Your own domain with SPF, DKIM and DMARC, a log of every message and an explicit rejection with a reason instead of silent loss.