Skip to main content
This walkthrough takes you from a fresh Sendmux account to a verified sending domain, an active mailbox, and a webhook receiving live delivery events. Plan for about 30 minutes — most of which is waiting for DNS records to propagate.
Before you start, sign in at app.sendmux.ai and create or join a team. Every step below happens inside that team.

What you’ll build

By the end of this guide you’ll have:
  • A verified custom sending domain with the four DNS records (TXT, SPF, DMARC, DKIM) AWS SES requires.
  • A live mailbox on that domain with bearer-token credentials.
  • A webhook subscription that receives signed delivery events.
  • A test email sent and confirmed in delivery logs.
1

Verify your sending domain

Add the domain you want to send from and publish the DNS records Sendmux generates for you.In the dashboard: open Mailbox domains and click Add domain. Enter your domain (for example, mail.acme.com) and Sendmux returns the records you need to publish at your DNS provider:
  • One TXT record proving ownership.
  • One SPF record authorising Sendmux to send.
  • One DMARC record setting your alignment policy.
  • Three DKIM CNAME records issued by AWS SES.
Publish all six records, then click Verify in the dashboard. Verification typically completes within a few minutes once your DNS provider has propagated. The domain status moves from pending to verified.Or via the API: see the Domain management guide for the equivalent POST /api/v1/domains + POST /api/v1/domains/{id}/verify flow.
You can also use a @myagent.mx shared address if you don’t have a custom domain yet — skip this step and pick the shared option when creating your mailbox in step 2.
2

Create a mailbox

A mailbox is a single sending address bound to a verified domain (or to the shared @myagent.mx namespace). Each mailbox gets its own credentials and can have its own delivery rules.In the dashboard: open Mailboxes and click Create mailbox. Pick the verified domain from step 1, choose a local part (for example, notifications), and click Create.The dashboard shows two one-shot secrets that cannot be retrieved later — copy them now:
  • An API key (smx_mbx_...) for the HTTP and SMTP APIs.
  • An app password plus IMAP/SMTP host details for any client that speaks IMAP or SMTP.
Store both in your secrets manager. If you lose them, you can mint a fresh app password from the mailbox detail page, but the original values are gone.
3

Send your first email

Use the API key from step 2 to send a test message. Replace your_key_here and the email addresses with your own values.
curl -X POST https://smtp.sendmux.ai/api/v1/emails/send \
  -H "Authorization: Bearer smx_mbx_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "from": { "email": "notifications@your-verified-domain.com", "name": "Your App" },
    "to": { "email": "you@example.com", "name": "Your Name" },
    "subject": "Hello from Sendmux",
    "html_body": "<p>It works!</p>",
    "text_body": "It works!"
  }'
A successful send returns 201 Created with an eml_* message id you can search in your delivery logs. See the HTTP sending guide for batch sends, attachments, and idempotency.
Prefer SMTP? The same credentials work — see Send via SMTP.
4

Subscribe a webhook

Webhooks let your application react to delivery events (delivered, bounced, complained) and inbound mail in real time.In the dashboard: open Webhooks and click Add webhook. Provide:
  • The URL that will receive events (must be HTTPS).
  • The event types you want — start with ses.bounce and ses.complaint to learn about deliverability problems.
On creation, Sendmux returns a signing secret (whsec_...) once. Copy it into your application’s secret store immediately — you cannot retrieve it again. If you lose it, rotate the secret from the webhook detail page.Sendmux signs every payload with HMAC-SHA256 over the request body, sent in the X-Sendmux-Signature header. Always verify the signature before trusting the payload.See Webhooks setup for the full event-type catalogue and retry behaviour, and Verify signatures for ready-to-paste verification code.
5

Verify everything works end-to-end

Send another test message — this time to a known good inbox so you can check both delivery and the corresponding webhook.
  1. Send via the API as in step 3.
  2. Confirm the message arrived in the recipient inbox (check spam folder if needed; deliverability improves as your domain reputation builds).
  3. Open Logs in the dashboard — your eml_* id should appear within seconds with status: delivered.
  4. Check your webhook receiver — for a successful delivery, no ses.bounce or ses.complaint event fires. To exercise the webhook path immediately, send a second message to bounce@simulator.amazonses.com; you’ll receive a ses.bounce event within about 30 seconds.
The bounce simulator address is provided by Amazon SES specifically for testing — it returns a hard bounce without affecting your sender reputation.

Where to next

Domain management

Add more domains, rotate DNS records, and manage verification state.

Sending API reference

Full reference for single sends, batch sends, attachments, and idempotency.

Webhooks

Subscribe to event types, handle retries, and rotate signing secrets.

Verify signatures

HMAC verification snippets for Node.js, Python, Go, and Ruby.

Need help?

Email contact@sendmux.ai with your request_id from the response (every API response carries one in the meta.request_id field and the X-Request-Id header).