One relay per server, every message logged, and the SPF/DKIM/DMARC records checked against live DNS.
Reading needs Read only and changes need Full, unless an endpoint says otherwise. How to read this page.
GET /api/mail/status
Section titled “GET /api/mail/status”Relay and signer health, queue depth, reverse-DNS verdicts.
- Level: Read only
GET /api/mail/messages
Section titled “GET /api/mail/messages”Sent mail, one row per recipient.
- Level: Read only
- Input:
?siteSlug=&status=&serverId=&search=&hours=&limit=&offset=
GET /api/mail/stats
Section titled “GET /api/mail/stats”Totals by status, per-hour buckets, per-site volume.
- Level: Read only
- Input:
?hours=24
POST /api/mail/ingest
Section titled “POST /api/mail/ingest”Parse the relay logs now instead of waiting a minute.
- Level: Manage. Only does now what the panel does every minute
GET /api/mail/queue
Section titled “GET /api/mail/queue”The postfix queue with a deferral reason per recipient.
- Level: Read only
- Input:
?serverId=
POST /api/mail/queue/:serverId/flush
Section titled “POST /api/mail/queue/:serverId/flush”Retry the whole queue now.
- Level: Manage. Only retries the mail already queued
DELETE /api/mail/queue/:serverId/:queueId
Section titled “DELETE /api/mail/queue/:serverId/:queueId”Drop one queued message; queueId=ALL empties the queue.
- Level: Full
- Notes: Destructive
POST /api/mail/test
Section titled “POST /api/mail/test”Inject a message into the relay, bypassing WordPress.
- Level: Full
- Input:
{from, to, serverId?, subject?}
GET /api/mail/setup
Section titled “GET /api/mail/setup”The whole setup guide: mode, rDNS, ports, per-domain record plan.
- Level: Read only
GET /api/mail/domains
Section titled “GET /api/mail/domains”Per-domain SPF/DKIM/DMARC against live DNS, plus the records to publish.
- Level: Read only
- Input:
?domain=
POST /api/mail/domains/:domain/publish
Section titled “POST /api/mail/domains/:domain/publish”Publish what can be published safely (SPF merged, DKIM generated, DMARC left alone).
- Level: Full
- Notes: Destructive
POST /api/mail/domains/:domain/check
Section titled “POST /api/mail/domains/:domain/check”Re-check one domain.
- Level: Manage. Only re-checks DNS; changes nothing
PUT /api/mail/servers/:serverId/hostname
Section titled “PUT /api/mail/servers/:serverId/hostname”Change the name the relay announces (applied live, queue untouched).
- Level: Full
- Input:
{hostname}
DELETE /api/mail/servers/:serverId/hostname
Section titled “DELETE /api/mail/servers/:serverId/hostname”Put the relay back on its default name, MAIL_HOSTNAME (applied live).
- Level: Full
POST /api/mail/servers/:serverId/publish-hostname
Section titled “POST /api/mail/servers/:serverId/publish-hostname”Point the relay hostname’s A record at that server.
- Level: Full
- Notes: Destructive
GET /api/mail/dkim
Section titled “GET /api/mail/dkim”DKIM keys with their DNS record values.
- Level: Read only
POST /api/mail/dkim
Section titled “POST /api/mail/dkim”Generate (or rotate) a key, push it to every server, restart the signers.
- Level: Full
- Notes: Destructive
- Input:
{domain, rotate?}
POST /api/mail/dkim/sync
Section titled “POST /api/mail/dkim/sync”Re-materialize every key on every server.
- Level: Manage. Only re-copies the keys the panel already holds
DELETE /api/mail/dkim/:domain
Section titled “DELETE /api/mail/dkim/:domain”Delete a key and its files.
- Level: Full
- Notes: Destructive