New guide: how to warm up a dedicated IP without hurting your reputation. Read now →
Log in
MigoSMTP
Migration guide

Switch from Mailgun to MigoSMTP

Move your sending without losing reputation, history or sleep. Run both providers in parallel, then cut over in stages.

AI helps map your Mailgun domains, routes and webhooks; you approve each change

TO DO
IN PROGRESS
DONE
DomainsAdd and verify
API callsSwitch endpoints
RoutesMap to inbound
WebhooksRe-point
Staged plan
Owners
Plan the move in stagesBreak the migration into audit, build, test and cutover, and track each piece to done.
Mailgun call
POST /v3/example.com/messages
→ POST /v1/send
from=hello@example.com
to=you@example.com
Response
202 Accepted
{ "id": "msg_[id]" }
Bearer key auth
Same data, new host
Simple swap
Same payload
Swap the endpointThe send call is similar: change the base URL and auth, and your payload shape barely changes.
example.com
TYPE
NAME
VALUE
TXT
@
v=spf1 include:mailgun.org ~all
CNAME
mig._domainkey
dkim.migosmtp.com
TXT
_dmarc
v=DMARC1; p=none
Both authorised
Dual-send
Verified
Add the new DNS recordsPublish SPF and DKIM for MigoSMTP and keep Mailgun's until you finish.
AI route converter
Route: support@
Parse rule: support
Route: reply+*@
Parse rule: reply
Webhook: delivered
Event: delivered
Webhook: failed
Event: bounced
Review and apply · one low match needs your eyes
Routes mapped
Edge cases flagged
AI converts routes and webhooksIt reads your Mailgun routes and webhook events, then proposes equivalent inbound parse rules and signed webhooks. Edge cases are flagged for you.
Mailgun events
Signed events
/events
200 OK
Analytics
200 OK
CRM
200 OK
Signed
Retries
Re-point event webhooksDelivered, failed and complained events map straight over.
Share moved
Fully moved
D1
D2
D4
D6
D9
D12
D14
Gradual
Reversible
Ramp traffic acrossRaise the share sent through MigoSMTP each day while you watch placement.
Plan
API
Domain
AI migrator
Webhooks
Ramp
Before you start
  • Admin access to your Mailgun account
  • Access to DNS for your sending domains
  • An export of bounces, complaints and templates
  • A list of routes and webhooks in use
The plan

A migration in five steps

1

Audit

List your domains, keys, templates, webhooks and suppressions.

2

Authenticate

Add MigoSMTP DNS records alongside the old ones.

3

Rebuild

Recreate templates and webhooks, import suppressions.

4

Cut over

Shift traffic in stages and watch delivery.

5

Retire

Remove old records and keys once stable.

Concepts

How your setup maps across

MailgunMigoSMTPWhat to do
Domains and DNS recordsDomain authenticationAdd the new records and verify them.
API keysScoped API keysCreate new keys per service.
TemplatesTemplatesRecreate content and variables.
WebhooksWebhooks and eventsUpdate the endpoint and payload handling.
RoutesInbound routesRecreate address matching rules.
IP poolsIP poolsPlan dedicated IPs and warmup.

Terminology reflects the provider's documentation at the time of writing. Verify against current docs before publishing.

How a message travels

From your app to the inbox, with checks at every hop

Your appSends by SMTP or API with your key.
IntakeAuthenticates, validates and rate-checks the request.
Queue and routingPrioritises mail and picks the right IP pool.
Signing and deliverySigns with DKIM and delivers with provider-aware pacing.
Inbox and eventsDelivery, bounce and engagement events flow back to you.
Code changes

Update your send call

Before
curl https://api.mailgun.net/v3/YOUR_DOMAIN/messages \
  --user "api:MAILGUN_KEY" \
  -F from="hello@yourdomain.com" \
  -F to="user@example.com" \
  -F subject="Hello" \
  -F html="<p>Hi there</p>"
After
curl https://api.migosmtp.com/v1/send \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "hello@yourdomain.com",
    "to": "user@example.com",
    "subject": "Hello",
    "html": "<p>Hi there</p>"
  }'

Illustrative requests. See the API reference for the complete field list.

Overview

How do I migrate from Mailgun to MigoSMTP?

Use cases

Ways to move from Mailgun

Move one domain at a time

Mailgun organises sending by domain, so migrate the same way. Authenticate one domain, move its traffic, confirm results, then repeat. Subdomains for marketing and transactional mail can move separately.

Rebuild inbound routes

If you use Mailgun routes to forward or parse incoming mail, list each match expression and action, then recreate it as an inbound rule. Test with real addresses before changing MX records.

Switch SMTP credentials only

Applications that send over SMTP often need just a new host, port and credentials. Change one service at a time and keep Mailgun credentials active until logs show no remaining use.

Plan dedicated IPs and pools

If you use IP pools, decide which streams get dedicated IPs. Start each on a warm-up schedule and keep low-volume mail on shared infrastructure until the dedicated IPs have a track record.

AI features

AI-assisted migration from Mailgun

Mapping

Configuration reader

Reads exported domains, keys and webhook settings, then proposes MigoSMTP equivalents with confidence scores. Low-confidence items are listed separately, and a team member approves each mapping before it is created.

Routes

Route translator

Takes Mailgun route match expressions and actions and drafts equivalent inbound rules. It shows what it changed and what it could not convert, and you approve or edit every rule.

Templates

Template variable checker

Scans templates for variables and compares them with the data your code sends, listing missing or renamed fields. Corrections are suggestions only, applied after your review.

Copilot

Migration copilot

Answers questions about your plan in plain language, such as which domain to move next. It cites the relevant docs, and any step it recommends still needs your approval.

AI suggestions for your Mailgun migration are reviewed and approved by you before anything is applied. [Confirm which AI features are available at launch.]

Best practices

Migration best practices

Inventory domains and subdomains first

Write down every sending domain, its region and what uses it. Forgotten subdomains with old scripts are the usual source of surprise failures after cutover.

Export bounces and complaints early

Pull bounce, complaint and unsubscribe lists for each domain and import them before sending. This protects reputation and avoids mailing addresses that already rejected you.

Compare webhook payloads side by side

Capture sample events from both providers and diff the fields. Update your handler to accept the new format, and verify signature checks with the new signing key.

Lower DNS TTLs before changes

Reduce TTLs on records you plan to change a day ahead. If you need to roll back, the change then takes effect in minutes rather than hours.

Keep Mailgun credentials until quiet

Leave old keys active until logs show zero traffic for several days. Then revoke them and delete the unused DNS records.

FAQs

Mailgun: frequently asked questions

How do I migrate from Mailgun to MigoSMTP?

Inventory your domains, keys, routes and webhooks, authenticate each domain with MigoSMTP alongside Mailgun, recreate templates and routes, import suppressions, and shift traffic gradually. Retire Mailgun records and keys once volume is stable and logs show no remaining use. Test on a small share of traffic first and review the results with your team.

How long does it take to migrate from Mailgun?

A single domain with SMTP sending can move in days. Several domains, inbound routes and dedicated IPs take longer because each needs testing and warm-up. Plan [n] weeks and migrate one domain at a time. Test on a small share of traffic first and review the results with your team.

Can I move my Mailgun routes?

Yes, but you recreate them. Export each route's match expression and action, then rebuild them as inbound rules in MigoSMTP. Test with a sample address before updating MX records. Check priority behaviour against [verify against provider docs]. Keep the old routes active until the new ones are confirmed working.

Will I lose my sender reputation?

Reputation is tied to your domain and sending IPs, so you do not carry it over automatically. Authenticate the domain, start with a small share, and increase gradually. Dedicated IPs need a proper warm-up before full volume. Test on a small share of traffic first and review the results with your team.

What happens to Mailgun bounces and complaints?

Export them per domain and import them into MigoSMTP as suppressions before your first send. That prevents mailing addresses that previously bounced or complained. Confirm the export format against [verify against provider docs] before importing. Test on a small share of traffic first and review the results with your team.

Do I need to change my code to leave Mailgun?

For SMTP, usually just host, port and credentials. For the HTTP API, the endpoint, authentication and field names differ, so update the call or use an SDK. Test in staging and switch one service at a time. Test on a small share of traffic first and review the results with your team.

Can I use Mailgun and MigoSMTP together during the move?

Yes. Both can authenticate your domain at once, so you can route part of your mail through MigoSMTP and leave the rest on Mailgun. Splitting by domain or application keeps comparisons simple. Test on a small share of traffic first and review the results with your team.

Can AI help me migrate from Mailgun?

It handles the repetitive mapping. The assistant reads your exported domains, webhooks and templates, proposes MigoSMTP equivalents with confidence scores and flags routes it cannot translate. A person approves each change before it is applied. [Confirm which AI features are available at launch.]

Can I run both providers at once?

Yes. Most teams send a small share through MigoSMTP first and increase gradually.

Do I need to warm up?

Moving from a shared pool to a dedicated IP needs warmup. Use the guide or the calculator.

Will you help with the move?

Our team can review your plan for Mailgun and the cutover schedule.

Start sending in minutes.

Create an account, add your domain and send your first email.