MaillyDocs

Webhooks

Receive incoming mail and delivery events in your application.

Configure a public HTTPS endpoint in Webhooks. Incoming mail supports a workspace default endpoint, and each address can have several endpoints of its own. Delivery webhooks let you choose the events you need.

Incoming mail

  • email.received: use the message ID and thread_id in the event to fetch the body or the full thread through the API.
  • webhook.test: after saving an endpoint, click Send test to receive a signed test event right away. It has the same shape as email.received plus test: true; any 2xx response passes.
CLI · incoming webhook
mailly inbox webhook set \
  --url https://your-service.example.com/mailly \
  --body-format markdown \
  --strip-quotes --json

This command changes webhook configuration. Replace the URL with an HTTPS endpoint you own, and use a separate inbox for testing.

Delivery events

Delivery webhooks report recipient-level outcomes such as delivered, bounced and complained. A successful send request does not replace the final delivery status. Events can be inspected and replayed in the workspace.

Verifying requests

  • Verify the Mailly-Signature header on every request.
  • Deduplicate by event ID; failed deliveries are retried.
  • A signing secret is displayed once, after creation or rotation.

On this page