CyberCLI
← All notification channels

Email (SMTP)

Free BYO Email Live · v1

The universal channel. Any SMTP server, your provider, your box.

Any SMTP server. Sends through your provider; nothing routes through us.

Where to get it

Any SMTP server you already have — your mail provider, a relay, or a self-hosted Postfix.

Install / what you need

Nothing to install. You need an SMTP host, port, and credentials (app password recommended).

How to connect

  1. 1 Have your SMTP host + port + username/app-password ready.
  2. 2 Open the dashboard's Notifications panel → Add destination → choose email, paste them (stored in the vault).
  3. 3 Hit Send test on the destination card.
  4. 4 Confirm the test mail lands and the receipt appears in the dashboard's Delivery log.

When you'd use it

Daily digest to the team alias.
Low-urgency case summaries.
The always-available fallback when richer channels fail.

What Herald sends through this channel

8 setup fields

Herald hands every alert to the EmailAdapter as a DispatchPlan. The fields below are what the dashboard form asks for; the sample is the plan the adapter receives. The adapter renders it into the channel-native shape (Discord embeds, Teams MessageCards, PagerDuty Events-API payloads, TwiML, JSON POST bodies) on the way out — that wire transcript varies per channel.

Setup form fields

field type required description / default
transport string optional no description · default: "smtp"
smtp_host string optional no description · default: ""
smtp_port integer optional no description · default: 587
smtp_user string optional no description · default: ""
smtp_password_secret_ref string required Vault secret reference name; resolved at adapter init. Holds the SMTP password (transport=smtp) or the Resend API key (transport=resend_api).
from_address string required no description
use_starttls boolean optional no description · default: true
timeout_seconds number optional no description · default: 10

Sample DispatchPlan (input to the adapter)

{
  "decision_id": "tdc-2026-06-20-abc12",
  "channel": "<channel-type>",
  "recipient": {
    "recipient_id": "soc-oncall",
    "display_name": "SOC on-call",
    "addresses": [
      {
        "channel": "<channel-type>",
        "address": "<destination>",
        "min_defcon": 5
      }
    ]
  },
  "urgency": "high",
  "retry_policy": {
    "max_attempts": 3,
    "initial_backoff_seconds": 5
  },
  "subject": "Suspicious login on CEO-LAPTOP",
  "body": "Warden flagged a PowerShell child of WINWORD.EXE. The encoded command resolved to a base64-wrapped Invoke-WebRequest to a newly-registered domain. Trust ladder: L3.",
  "approval_link": "https://app.cybercli.local/approve/abc12",
  "incident_ref": "case-2026-0142",
  "signal_id": "sig-2026-06-20-9f3"
}

Sovereignty: byo_external · Min tier (BYO): free · SMTP via stdlib or Resend HTTPS API; secret from CredentialVault.

Sovereignty

CyberCLI hands the message to YOUR SMTP server over your network. We never see it.

Who notifies through it

Herald — the Guild's voice role — routes alerts, daily digests, and AI verdicts here, on a per-CYCON-state matrix you control. CYCON 1/2 alerts repeat until an operator acks.

The Guild →

Go deeper