Examail Overview
Deliver the right message at the right time. Examail provides the infrastructure for high-volume, reliable email delivery — REST API, SMTP relay, verified sending domains, templates, and real-time tracking, all running on Sendexa's own self-hosted mail node.
High Deliverability
Own DKIM keys per domain, SPF/DMARC guidance, and dedicated mail infrastructure — not a shared IP pool.
Transactional & Marketing
Send everything from sign-up confirmations to large-scale newsletters, plus templated and batch sends.
Template Engine
Create and manage reusable HTML templates with dynamic variable substitution via the API.
Real-time Analytics
Track opens, clicks, bounces, and complaints via webhooks, plus history search and aggregate stats.
SMTP Relay
No SDK? Point any SMTP-capable app at mail.sendexa.co with a dashboard-issued credential.
Domain Verification
Auto-generated DKIM keys, SPF/DMARC guidance, and one-click Cloudflare DNS push.
<2s
to acceptance
$0.0001
per email, + attachment surcharge on REST
100
emails per /batch request
10MB
including attachments
Authentication
email.write for sends/writes, email.read for status/history/stats. See Authentication → SMTP relay uses a separate, dashboard-issued username/password — see the SMTP Relay docs.Send your first email in under a minute. Your from address must be on a verified domain.
curl -X POST 'https://api.sendexa.co/v1/email/send' \-H 'Content-Type: application/json' \-H 'Authorization: Basic YOUR_DASHBOARD_BASE64_TOKEN' \-d '{"to": "user@example.com","from": "hello@yourdomain.com","subject": "Hello from Examail!","html": "<p>Welcome to our platform.</p>"}'
Response
{"success": true,"message": "Email sent successfully","messageId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890","data": {"messageId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890","providerMessageId": "<a1b2c3d4-e5f6@sendexa.co>","to": ["user@example.com"],"suppressedCount": 0,"cost": 0.0001}}
API Reference
/v1/email/sendSend a single email — HTML, plain text, or a saved template.
/v1/email/batchSend up to 100 emails in a single request.
/v1/email/status · /history · /stats · /metricsPoll a single message, search history, or pull aggregate/time-series stats.
/v1/email/templatesCreate and manage reusable HTML templates with variables.
/v1/email/domainsVerify sending domains with DKIM/SPF/DMARC before you can send from them.
/v1/email/suppressionsSee and manage recipients that are auto-suppressed from bounces/complaints.
mail.sendexa.co:587Send from any SMTP-capable app with a dashboard-issued credential — no code.
Dashboard → DevelopersReal-time delivery, bounce, and engagement events instead of polling.
| Status | Meaning |
|---|---|
| QUEUED | Accepted, waiting to be handed to the mail node |
| SENT | Handed off for delivery |
| DELIVERED | Confirmed delivered |
| OPENED | Recipient opened the email |
| CLICKED | Recipient clicked a tracked link |
| BOUNCED | Hard or soft bounce — hard bounces auto-suppress the recipient |
| FAILED | Delivery failed for a reason other than a bounce |
| SPAM | Recipient marked as spam — auto-suppresses the recipient |
| Code | Cause |
|---|---|
DOMAIN_NOT_VERIFIED | 'from' address isn't on a domain you've verified — see Domains |
ALL_SUPPRESSED | Every recipient is on your suppression list |
TEMPLATE_NOT_FOUND | templateId doesn't match an active template on your account |
MISSING_BODY | None of html/bodyHtml, text/bodyText, or templateId was provided |
INSUFFICIENT_BALANCE | Wallet balance too low to cover the send |
VALIDATION_ERROR | Request body failed schema validation — see the errors array |
Best Practices
- Verify your sending domain before going to production — sends fail closed with
DOMAIN_NOT_VERIFIED, not a soft warning. - Store the
messageIdfrom every response to enable status checks. - Use webhooks instead of polling for delivery/bounce events.
- Use
POST /v1/email/batchfor multi-recipient sends — not repeated single sends. - Reach for SMTP relay only for off-the-shelf apps you can't integrate the REST API into — the API gives you richer billing, tracking, and webhooks.