Module 8 · Lesson 16 of 25

KumoMTA's event log structure

Part of KumoMTA: High-Volume Sending Engine — Logging, Hooks & ClickHouse.

Every message generates structured JSON events: Received, Delivered, Bounced, TransientFailure, Expiration, FeedbackReport.

Sample log line:

{
  "type": "Delivered",
  "id": "01HC8X...",
  "timestamp": 1748908800.123,
  "sender": "newsletter@example.com",
  "recipient": "alice@gmail.com",
  "domain": "gmail.com",
  "tenant": "acme-marketing",
  "campaign": "blackfriday-2026",
  "response": { "code": 250, "enhanced_code": "2.0.0", "content": "OK" },
  "queue": "gmail.com.acme-marketing.blackfriday-2026",
  "egress_source": "ip-3",
  "session_id": "abc...",
  "headers": { "Message-ID": "<...>" }
}

Default log destinations:

  • /var/log/kumomta/kumod.log — rotated
  • Webhook hooks for streaming

Recommended pipeline: KumoMTA → Vector → ClickHouse / S3 / Loki. Vector handles batching, retries, and schema enforcement.

Sign in to keep track of what you have read.

Pulse · self-hosted sending

Own the infrastructure your pipeline depends on.

One install script on your own server. Pulse sets up the MTA, mailboxes, certificates and dashboard; you add domains and start sending.

# on a fresh Ubuntu server
$ cd pulse && sudo ./install.sh
→ docker compose up · kumomta · stalwart · caddy
→ dashboard ready on https://pulse.yourdomain.com
$

Also from us:Beat — monitoring that tells you the fixConsulting — $65/hr, no retainer