Skip to content

Notification Channels

Notification channels are the destinations Mantis delivers event notifications to (deployment results, target offline, certificate expiry, and so on). Create and manage them in Lens under Notifications → Channels, or via the /api/v1/notifications/channels API. Managing channels requires the notifications:create, notifications:update, and notifications:delete permissions for creating, editing, and deleting channels respectively.

Supported channel types:

TypeDestination
EmailAn SMTP server (see below)
WebhookAn HTTPS endpoint (Standard Webhooks, optionally HMAC-signed)
SlackA Slack incoming-webhook URL
TeamsA Microsoft Teams Power Automate workflow URL
DiscordA Discord webhook URL

An email channel delivers notifications through an SMTP server. Configure these fields when creating or editing an email channel:

FieldRequiredDescription
smtp_hostYesSMTP server hostname
smtp_portYesSMTP server port (see TLS modes below)
smtp_from_addressYesEnvelope sender address (MAIL FROM)
smtp_from_nameNoDisplay name for the sender
smtp_usernameNoSMTP AUTH username (omit for an unauthenticated relay)
smtp_passwordNoSMTP AUTH password — encrypted at rest and never returned
smtp_use_tlsNoWhether to use TLS (default: true)

The password is encrypted with AES-256-GCM, bound to the channel (so a stored secret cannot be reused on another channel), and is never logged or returned by the API.

The transport security mode is derived from smtp_use_tls and the port:

smtp_use_tlsPortMode
true465Implicit TLS (SMTPS — TLS from the first byte)
trueany other (e.g. 587)STARTTLS (opportunistic upgrade)
falseanyPlaintext (no transport security)

TLS uses the same rustls + aws-lc-rs stack as the rest of Mantis. Leave smtp_use_tls at its true default unless you are sending to a trusted local relay; with plaintext, credentials travel in the clear.

Use the Test action in Lens (or POST /api/v1/notifications/channels/{id}/test) to send a test message. For an email channel this performs a self-send to smtp_from_address, exercising the full path — DNS/connection, TLS negotiation, AUTH, and message construction — and reports success or the specific failure.

Deliveries are processed by Mandible’s notification worker. A transient failure (connection error, timeout, SMTP 4xx, or a temporary DNS failure) is retried with exponential backoff. A permanent failure (SMTP 5xx reject, an unparseable sender/recipient address, or a missing/undecryptable SMTP configuration) is dead-lettered immediately rather than retried, since a retry cannot succeed. A per-channel circuit breaker pauses delivery to a channel that is failing repeatedly.