Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

smtp connectors

The config fields of a smtp connector, which backs transactional email over SMTP.

An SMTP server for send_email: the lowest-common-denominator mail transport that self-hosted and enterprise environments already run. Transport, credentials, TLS mode, and the default sender live here; the message lives on the task.

{
  "name": "mailer",
  "connector_type": "smtp",
  "config": {
    "type": "smtp",
    "host": "smtp.gmail.com",
    "port": 587,
    "tls": "starttls",
    "auth": { "type": "basic", "username": "env://SMTP_USER", "password": "env://SMTP_PASS" },
    "from": "Orion <noreply@example.in>"
  }
}
FieldTypeRequiredDefaultDescription
hoststringyesServer hostname — a host, not a URL
portintegerno587587 pairs with starttls, 465 with implicit, 25 with internal relays
tlsstringno"starttls"starttls | implicit | none. Certificates validate against the platform trust store — install a private CA at the OS level; there is deliberately no skip-verification knob. none is for local dev relays and draws a validation warning
authobjectno{"type": "none"}none (unauthenticated smarthost) or basic with username/password (secret references accepted). Future mechanisms are new tagged variants
fromstringyesDefault sender; addr@example.com or Name <addr@example.com>
allow_from_overridebooleannofalseLet a task supply its own from
allow_private_urlsbooleannofalseAllow private and internal addresses — the usual opt-in for an internal relay
timeout_msintegerno10000Per-send timeout (connect + protocol exchange)

POST /api/v1/admin/connectors/{name}/test probes connect + EHLO + TLS + authentication without sending mail, through the same pooled transport real sends use. There is no retry field, and send_email never retries on its own: SMTP has no idempotency key, so a re-driven timeout is a duplicate email. See Retries.

Last verified 14 September 2026