Inbound Routes
Enable receiving on the domain, publish the MX records Sendix shows, then use email.received webhooks or forwarding rules.
Swap SMTP credentials or move the Messages API call to a JSON request, rebuild Routes as inbound forwarding rules, and bring your suppression lists with you.
- SMTP_HOST=smtp.mailgun.org+ SMTP_HOST=smtp.sendix.dev- SMTP_PORT=587+ SMTP_PORT=587 # STARTTLS- SMTP_USER=[email protected]+ SMTP_USER=<username from dashboard>- SMTP_PASS=••••••••+ SMTP_PASS=<Sendix API key>Verify your domain in Sendix, then change SMTP from smtp.mailgun.org to smtp.sendix.dev:587 with a Sendix API key, or replace POST /v3/<domain>/messages (form data) with a JSON POST to https://sendix.dev/api/v1/emails. Map webhooks (delivered → email.delivered, permanent failed → email.bounced, complained → email.complained), rebuild inbound Routes as Sendix forwarding rules or email.received webhooks, and import bounces, unsubscribes and complaints as suppressions.
Run Mailgun and Sendix side by side until the new path is proven.
Publish the Sendix DKIM TXT record (<selector>._domainkey), the bounce CNAME (bounce.<your-domain> → bounce.sendix.dev) and add include:mail.sendix.dev to your SPF record. Mailgun’s DKIM records can stay while both providers send.
SMTP users change host and credentials. API users switch from multipart form fields (from, to, subject, html, text, h:X-Header) to a JSON body; custom headers move into the headers object and o:tag values into tags.
Create a Sendix webhook for the events you consumed from Mailgun, verify X-Sendix-Signature, and map event names with the table below.
Export bounced, unsubscribed and complained addresses from Mailgun, add them with POST /v1/suppressions, move traffic gradually, then remove Mailgun’s SPF include.
Where each piece of your current integration lives in Sendix.
| Concept | Mailgun | Sendix |
|---|---|---|
| SMTP server | Mailgunsmtp.mailgun.org:587 (EU: smtp.eu.mailgun.org) | Sendixsmtp.sendix.dev:587 (STARTTLS) |
| SMTP login | MailgunPer-domain SMTP credentials | SendixUsername from your dashboard, API key as password |
| Send endpoint | MailgunPOST https://api.mailgun.net/v3/<domain>/messages | SendixPOST https://sendix.dev/api/v1/emails (JSON) |
| API authentication | MailgunHTTP Basic, user "api" + API key | SendixAuthorization: Bearer <API key> |
| Templates | MailgunStored templates (Handlebars) | SendixVersioned {{variable}} templates (template_id + template_data) |
| Delivered event | Mailgundelivered | Sendixemail.delivered |
| Bounce event | Mailgunfailed (severity: permanent) | Sendixemail.bounced |
| Complaint event | Mailguncomplained | Sendixemail.complained |
| Webhook security | MailgunHMAC-SHA256 over timestamp + token | SendixX-Sendix-Signature (HMAC-SHA256) |
| Suppressions | MailgunBounces, unsubscribes and complaints lists | SendixSuppression list API (/v1/suppressions) |
Mailgun is a trademark of its owner. Its column summarizes public documentation as of September 12, 2026; confirm current details in Mailgun’s docs before migrating.
Mailgun features that need a plan, and where they land in Sendix.
Enable receiving on the domain, publish the MX records Sendix shows, then use email.received webhooks or forwarding rules.
If you send from a subdomain such as mg.acme.com, you can verify the same subdomain in Sendix and keep your From addresses.
o:tag values map to Sendix tags ({name, value}); v: custom variables map to template_data or tags.
Mailgun offers an EU region. Sendix does not currently offer a customer-selectable data region — check the pricing FAQ and trust center if residency matters.
Answers for teams moving from Mailgun.
Sendix inbound: enable receiving on a domain, publish the MX records shown, then consume email.received webhooks or create forwarding rules with POST /v1/emails/receiving/forwarding.
Yes. Each provider signs with its own DKIM selector, and a single SPF record can include both during the transition — keep it to one SPF record and within the 10-DNS-lookup limit. A domain can have only one DMARC record, so keep your existing one if it already has a policy.
The Node SDK and CLI exist as source packages but are not yet published to npm, so most teams integrate over the REST API (plain HTTPS and JSON) or SMTP. Neither needs an extra dependency.
Import them as suppressions with POST /v1/suppressions and a reason of hard_bounce, unsubscribed or complained. Sendix then reports email.suppressed instead of sending to those addresses.
The free plan includes 1,000 emails per month. Paid plans change volume and limits, not your API calls or SMTP settings.
1,000 emails free every month. No credit card required. Upgrade only when you outgrow the free tier — and we will let you know when that time comes.
Managed SaaS platform · Native SMTP engine · SOC 2 in progress