Skip to main content
Zexa handles email delivery so you can focus on crafting the right message. Send transactional notifications — such as order confirmations and password resets — or marketing campaigns to your contact list, and track every send, open, bounce, and spam report from a single dashboard.

Before you start

Good email deliverability depends on proper domain configuration. Complete these steps before sending your first email:
1

Verify your sender domain

In the Zexa dashboard, go to Channels > Email and add the domain you’ll be sending from (e.g., yourdomain.com). Zexa will generate the DNS records you need to add.
2

Add DNS records to your domain

Add the following DNS records at your domain registrar or DNS provider to authenticate your emails:
  • SPF — authorises Zexa’s mail servers to send on behalf of your domain.
  • DKIM — adds a cryptographic signature to outbound messages, proving they haven’t been tampered with.
Once the records are saved, click Verify in the Zexa dashboard. Propagation can take up to 48 hours, though it usually completes within a few minutes.
Adding both SPF and DKIM records significantly improves inbox placement rates and reduces the chance of your emails being flagged as spam.

Send an email via API

Send a POST request to /messages with "channel": "email" to dispatch an email message.
curl --request POST \
  --url https://api.zexa.ao/v1/messages \
  --header 'Authorization: Bearer <api_key>' \
  --header 'Content-Type: application/json' \
  --data '{
    "channel": "email",
    "to": "customer@example.com",
    "from": "noreply@yourdomain.com",
    "subject": "Order Confirmation #1234",
    "body": "Thank you for your order!",
    "html": "<p>Thank you for your order!</p>"
  }'
A successful request returns a 201 response with the message object:
{
  "id": "msg_em2291",
  "status": "queued",
  "channel": "email",
  "to": "customer@example.com",
  "created_at": "2026-06-24T10:15:00Z"
}

HTML vs plain text

The email request body accepts two content fields — always provide both:
  • body — the plain text version of your email. This is displayed by email clients that cannot render HTML, and is also used by spam filters when evaluating your message.
  • html — the full HTML version of your email. Most modern email clients render this version.
Sending both fields ensures every recipient receives a readable message regardless of their email client. If you only send HTML and a client strips it, recipients will see an empty message.

Delivery tracking

Zexa records engagement and deliverability events for every email you send. View these stats per message or aggregated across a campaign in the Reports section of your dashboard.
StatusDescription
queuedThe email has been accepted and is waiting to be dispatched.
sentThe email has been handed off to the receiving mail server.
deliveredThe receiving mail server confirmed successful delivery to the inbox.
openedThe recipient opened the email (requires tracking pixel support).
bouncedThe email could not be delivered — the address may be invalid or full.
spamThe recipient marked the email as spam or junk.
Sending emails to addresses without explicit consent may result in high spam rates and account suspension. Always obtain permission before adding contacts to your list.
Include a clear and functional unsubscribe link in all marketing emails. This is required by anti-spam laws in many jurisdictions and by Zexa’s Terms of Use.

Next steps

Email Campaigns

Send bulk marketing emails to segmented contact lists with scheduling and reporting.

Contact Lists

Manage your subscriber lists and segment contacts for targeted email campaigns.