Envello
Tutorial

Migrating from Mailgun to Envello

Envello Team·2026-07-16·6 min read

Worth saying up front: Mailgun already offers an EU sending region (api.eu.mailgun.net), so "EU data residency" alone isn't the reason to move off it the way it might be for a US-only provider. If you're migrating from Mailgun, the honest reasons are elsewhere: request shape, default log retention, and pricing that doesn't shift under you.

The API shape is different, not just the field names

Mailgun's classic API is form-encoded, not JSON, authenticated with HTTP Basic Auth using api as the username and your API key as the password, posted to a domain-scoped URL. Envello's API is JSON over Bearer auth to a single endpoint. This isn't a field rename, it's a different request format entirely, so budget more time for this migration than a same-shape SDK swap.

  • from, to, subject, html, text map conceptually, but move from form fields to a JSON body
  • Mailgun's html field name is already close (some historical Mailgun docs use body-html), check which convention your integration currently uses
  • cc and bcc: same idea, JSON array instead of repeated form fields

If you're using mailgun.js

The official mailgun.js SDK wraps the form-encoded API in a more familiar client shape (mg.messages.create(domain, data)). If your codebase already goes through that SDK rather than raw HTTP calls, the migration is mostly a matter of swapping the client and adjusting the method signature, less work than migrating off raw form-encoded requests directly.

What's actually different day to day

  • Log retention: Envello's default is 90 days on paid plans (7 days on free), check what tier your current Mailgun log retention sits on before assuming this is automatically an upgrade
  • Pricing: Envello's tier price is locked for 24 months from signup, with 6 months' notice and a grandfathering option before any change
  • Dashboard and log search: worth comparing directly rather than taking either provider's word for it, since this is the tool you'll actually be looking at during an incident

Domain verification and cutover

Add Envello's SPF, DKIM, and DMARC records alongside your existing Mailgun records rather than replacing them immediately. Swap your API key, send a small percentage of traffic first, and confirm delivery in log search before widening the cutover and removing the old DNS records.

Envello

EU-hosted transactional email, done right by default.