checkId: check.integration.smtp plugin: stellaops.doctor.integration severity: warn tags: [connectivity, email, smtp]

SMTP Email Connectivity

This Doctor check verifies that Stella Ops can open a network connection to the configured mail server, so operators know email notifications (approval requests, alerts, audit reports) will reach their recipients. It is a transport-level probe — for configuration completeness, see the related notify check below.

What It Checks

Reads the SMTP host from Smtp:Host, Email:Smtp:Host, or Notify:Email:Host and the port from the corresponding :Port key (defaulting to 587). Opens a raw TCP connection to the SMTP server with a 5-second timeout. The check passes if the TCP connection succeeds, fails on timeout, socket error, DNS failure, or connection refusal.

Why It Matters

Email notifications deliver approval requests, security alerts, deployment summaries, and audit reports to operators who may not be monitoring Slack or the web UI. If the SMTP server is unreachable, these notifications silently fail. For organizations with compliance requirements, email delivery may be the mandated audit notification channel.

Common Causes

How to Fix

Docker Compose

# Check SMTP configuration
grep 'SMTP__\|EMAIL__SMTP\|NOTIFY__EMAIL' .env

# Test TCP connectivity
docker compose exec gateway bash -c \
  "echo > /dev/tcp/smtp.example.com/587 && echo OK || echo FAIL"

# Update SMTP settings
echo 'Smtp__Host=smtp.example.com' >> .env
echo 'Smtp__Port=587' >> .env
echo 'Smtp__UseSsl=true' >> .env
docker compose restart platform

Bare Metal / systemd

# Verify configuration
cat /etc/stellaops/appsettings.Production.json | jq '.Smtp'

# Test connectivity
telnet smtp.example.com 587
# or
nslookup smtp.example.com

# Update configuration
sudo nano /etc/stellaops/appsettings.Production.json
sudo systemctl restart stellaops-platform

Kubernetes / Helm

# values.yaml
smtp:
  host: smtp.example.com
  port: 587
  useSsl: true
  existingSecret: stellaops-smtp-creds   # Secret with username/password
helm upgrade stellaops ./chart -f values.yaml

Verification

stella doctor run --check check.integration.smtp