Skip to main content

Email / SMTP

Notifications

Mission Control integrates with SMTP servers to send email notifications.


Notifications

Use cases:

  • Send email alerts when health checks fail or configs change
  • Notify teams of incidents and infrastructure changes
  • Route notifications to different recipients based on severity
  • Use HTML or plain text email formatting
  • Integrate with any SMTP provider (Gmail, SendGrid, AWS SES, etc.)

Send email notifications via SMTP.

Basic Email Notification

email-notification.yaml
apiVersion: mission-control.flanksource.com/v1
kind: Notification
metadata:
name: email-alerts
spec:
events:
- check.failed
to:
email:
host: smtp.example.com
port: 587
username:
valueFrom:
secretKeyRef:
name: smtp-credentials
key: username
password:
valueFrom:
secretKeyRef:
name: smtp-credentials
key: password
fromAddress: alerts@example.com
fromName: Mission Control
toAddresses:
- ops-team@example.com
Using Connection Reference
email-connection-notification.yaml
apiVersion: mission-control.flanksource.com/v1
kind: Notification
metadata:
name: email-via-connection
spec:
events:
- incident.created
- incident.resolved
to:
connection: connection://smtp/corporate
title: "[{{.incident.severity}}] {{.incident.title}}"
body: |
Incident: {{.incident.title}}
Severity: {{.incident.severity}}
Status: {{.incident.status}}

{{.incident.description}}
Routing by Severity
email-routing-notification.yaml
apiVersion: mission-control.flanksource.com/v1
kind: Notification
metadata:
name: email-critical
spec:
events:
- check.failed
filter: check.severity == "critical"
to:
email:
connection: connection://smtp/alerts
toAddresses:
- oncall@example.com
- management@example.com
title: "CRITICAL: {{.check.name}} Failed"
---
apiVersion: mission-control.flanksource.com/v1
kind: Notification
metadata:
name: email-warnings
spec:
events:
- check.failed
filter: check.severity == "warning"
to:
email:
connection: connection://smtp/alerts
toAddresses:
- engineering@example.com
Gmail SMTP
email-gmail.yaml
apiVersion: mission-control.flanksource.com/v1
kind: Notification
metadata:
name: gmail-alerts
spec:
events:
- check.failed
to:
email:
host: smtp.gmail.com
port: 587
encryption: ExplicitTLS
auth: Plain
username:
valueFrom:
secretKeyRef:
name: gmail-credentials
key: email
password:
valueFrom:
secretKeyRef:
name: gmail-credentials
key: app-password # Use App Password, not regular password
fromAddress: alerts@yourcompany.com
toAddresses:
- team@example.com
AWS SES
email-ses.yaml
apiVersion: mission-control.flanksource.com/v1
kind: Notification
metadata:
name: ses-alerts
spec:
events:
- check.failed
to:
email:
host: email-smtp.us-east-1.amazonaws.com
port: 587
encryption: ExplicitTLS
username:
valueFrom:
secretKeyRef:
name: ses-credentials
key: smtp-username
password:
valueFrom:
secretKeyRef:
name: ses-credentials
key: smtp-password
fromAddress: noreply@verified-domain.com
toAddresses:
- alerts@example.com

Configuration Options

FieldDescriptionDefault
hostSMTP server hostnameRequired
portSMTP server port587
usernameSMTP authentication usernameRequired
passwordSMTP authentication passwordRequired
fromAddressSender email addressRequired
fromNameSender display nameOptional
toAddressesList of recipient email addressesRequired
subjectEmail subject (supports templates)Optional
encryptionTLS mode: None, ExplicitTLS, ImplicitTLS, AutoAuto
authAuth method: None, Plain, CRAMMD5, OAuth2Plain
insecureTLSSkip TLS certificate verificationfalse
headersCustom email headersOptional

Encryption Modes

ModeDescriptionCommon Port
NoneNo encryption (not recommended)25
ExplicitTLSSTARTTLS upgrade587
ImplicitTLSTLS from connection start465
AutoAuto-detect based on port-

Next Steps