Module 10 · Lesson 21 of 25

One-click unsubscribe (RFC 8058)

Part of KumoMTA: High-Volume Sending Engine — Suppression Lists & Compliance.

Since Feb 2024 Gmail and Yahoo require bulk senders (>5000/day) to support List-Unsubscribe-Post: List-Unsubscribe=One-Click. KumoMTA doesn't generate this for you — your application does — but Kumo must sign it with DKIM.

Headers your sender must add:

List-Unsubscribe: <https://unsub.example.com/u/{token}>, <mailto:unsub@example.com?subject={token}>
List-Unsubscribe-Post: List-Unsubscribe=One-Click

Your unsub endpoint must:

  • Accept POST with body List-Unsubscribe=One-Click.
  • Suppress immediately (no confirmation page, no login).
  • Return 200 in <2 seconds.

Include in DKIM signed headers list:

local signer = kumo.dkim.rsa_sha256_signer {
  headers = { 'From', 'To', 'Subject', 'Date', 'Message-ID', 'List-Unsubscribe', 'List-Unsubscribe-Post' },
  ...
}

Missing one-click on bulk mail = silent filtering at both Gmail and Yahoo. Non-negotiable.

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