Email

Email is optional. Without it, invites and password resets show a copyable link instead of sending one, and notifications go to push and webhooks only.

Set it in the setup wizard’s second step, in Settings → Organization, over MCP with configure_email, or with OPENFAULT_SMTP_URL.

SMTP settings

FieldMeaning
HostSMTP server, e.g. smtp.example.com. Leave it empty to turn email off.
PortEmpty means the default for the security mode: 587 for STARTTLS, 465 for TLS, 25 for none.
SecuritySTARTTLS connects in plain text and upgrades; the upgrade is required, so a server that does not offer it fails. TLS is TLS from the first byte (implicit TLS, usually port 465). None is for a local relay only.
Username, PasswordSMTP credentials. The password is never shown again: leave it blank to keep it, type a new one to replace it.
FromSender, e.g. OpenFault <noreply@example.com>.

Amazon SES

Pick Amazon SES · <region> in the Preset menu. It fills in email-smtp.<region>.amazonaws.com, port 587 and STARTTLS. Regions: us-east-1, us-east-2, us-west-1, us-west-2, ca-central-1, eu-west-1, eu-west-2, eu-central-1, ap-south-1, ap-southeast-1, ap-southeast-2, ap-northeast-1.

Use the SMTP credentials you create in the SES console, not your AWS access keys. The From address must be a verified identity in that region.

Test email

Send test email saves the form, then sends “OpenFault test email” to you. It waits up to 10 seconds and shows the SMTP server’s error inline if the send fails. Over MCP, send_test_email does the same and takes an optional to.

Send log

Every send is logged, with the recipient’s domain only (*@example.com), never the full address. Settings → Organization lists the latest sends from the last 24 hours with their subject and any error. Older entries are purged.

Environment variable

OPENFAULT_SMTP_URL overrides the stored settings, and the form shows “set by environment”.

OPENFAULT_SMTP_URL="smtp://user:pass@smtp.example.com:587?from=OpenFault <noreply@example.com>"
python3 -c 'import urllib.parse,sys; print(urllib.parse.quote(sys.argv[1], safe=""))' 'your/smtp+password'

What sends email

EmailWhen
InviteAn owner or admin invites someone. Without SMTP the invite link is shown to copy.
Password resetSomeone asks for a reset on the login page. Needs a base URL as well, so the link never comes from a request’s Host header.
Issue alertsNew issue, regression, unmute and spike, per each person’s preferences. See Notifications.
Test emailYou press Send test email or call send_test_email.