Email / SMTP¶
Vesana needs SMTP for three things:
- 2FA codes to users
- Alert notifications via email channels
- Scheduled PDF reports
Configuration¶
/admin/smtp (or in setup wizard step 5):
| Field | Example | Meaning |
|---|---|---|
| Host | smtp.example.com |
Server address |
| Port | 587 (STARTTLS) / 465 (SMTPS) |
TLS port |
| User | noreply@example.com |
Login |
| Password | App password | Login |
| From | Vesana <noreply@example.com> |
From address |
| Reply-To | optional | Where replies go |
Test mail button validates immediately. Like saving, it requires a fresh identity confirmation; if you change host or port, enter the password again so the stored one is not sent to a different server.
Language and timezone¶
The same page (Admin → Notifications → Email & messages) carries two instance-wide settings:
| Setting | Effect |
|---|---|
| Notification language | German or English for all channels. Status terms such as CRITICAL always stay English. |
| Instance timezone | Applies to the times in notifications (always with the zone abbreviation, e.g. "10:53 CEST"), to the user interface, and as the default for new report schedules and status pages. When you first open it, your browser's timezone is suggested. |
Without a timezone set, notifications stay on UTC (and say so); the interface then uses your browser's timezone. Up to v1.9.446 the interface was hard-wired to Europe/Rome.
Common SMTP providers¶
Gmail / Google Workspace¶
- Host:
smtp.gmail.com - Port:
587 - TLS: STARTTLS
- App password (not account password) — Workspace must have 2FA active
- From: must be an alias-capable address
Microsoft 365¶
- Host:
smtp.office365.com - Port:
587 - App password or OAuth (Vesana currently supports password / app password only)
- Account must have „SMTP send allowed" (some tenants disable this)
Postmark / Mailgun / SendGrid¶
- Host and port from provider
- API key as password, user typically
apikeyor similar - Sender domain must have SPF/DKIM verified
Own Postfix¶
- Host: your mail server
- Port + auth as configured
- DNS records: SPF + DKIM + DMARC clean, otherwise mails go to spam
Templates¶
Default templates are DE+EN, layouted, branded. Custom Jinja2 templates uploadable (Pro+).
Variables:
| Variable | Meaning |
|---|---|
alert.host.name |
Hostname |
alert.service.display_name |
Service name |
alert.status |
OK / WARN / CRIT / NO_DATA |
alert.message |
Plugin output |
alert.host_url |
Direct link to host detail |
alert.is_recovery |
Boolean |
alert.acknowledged_by |
If already acknowledged |
Retry behavior¶
When SMTP doesn't respond:
- 3 retries with backoff (5 s, 30 s, 5 min)
- Permanent failure: entry in notification log with status
failed - Audit entry written
Visible at /admin/notification-log.
Bounce handling¶
Currently rudimentary — bounce returns, mail server response logged, but no auto address-disable. For permanently bad addresses: check user profile.
Encryption¶
| Type | Recommendation |
|---|---|
| STARTTLS on port 587 | Standard, good |
| Direct TLS on 465 | Older, but works |
| Plain SMTP on 25 | Internal only, last resort |
Next¶
- Notification channels — how email channels are built
- PDF reports — mail dispatch for reports