Skip to main content

Core difference

Mailgun is strongly domain-centric. Sending, tracking, templates, webhooks, suppressions, and routes are often configured per domain. MailChannels is centered on account or sub-account credentials with JSON send payloads, DKIM authentication, Domain Lockdown, per-message tracking settings, and account or sub-account suppression policy.

Feature mapping

Mailgun conceptMailChannels conceptMigration approach
Domain-scoped send API/send payloadReplace Mailgun form-data calls with MailChannels JSON payloads.
Sending domainsDKIM and Domain LockdownRecreate authentication with MailChannels DKIM records and DNS publication.
Account and domain templatesApplication-managed Mustache contentExport templates and move storage or versioning outside MailChannels.
Per-domain trackingPer-message tracking_settingsConvert domain defaults into application send-time decisions.
Account and domain webhooksMailChannels webhooksRecreate webhook endpoint enrollment and update event consumers.
Domain suppressionsMailChannels suppression listCollapse domain-scoped suppression behavior into account or sub-account policy.
SubaccountsMailChannels sub-accountsMap subaccounts directly when tenant boundaries should remain separate.
Inbound routesNo MailChannels Email API equivalentReplace inbound forwarding or webhook routing with another receiving service.

Send payload notes

Mailgun send calls commonly use multipart form fields. MailChannels expects JSON. Build a translation layer around the application-level message model rather than copying request fields directly.
ConcernMailgun behaviorMailChannels behavior
Request shapeForm-data fields and domain-specific endpointJSON payload sent to /send or /send-async
Domain selectionOften implicit in endpoint domainExplicit sender domain and DKIM configuration
Recipient variablesMailgun recipient variablesdynamic_template_data inside MailChannels personalizations
TrackingDomain-level defaultsPer-message tracking_settings
WebhooksAccount or domain scopedMailChannels webhook endpoint with different event schema

Template migration

Mailgun templates can exist at account or domain scope. MailChannels does not provide the same stored-template control plane, so templates should move into application code or an external template store. If a Mailgun template has domain-specific variants, preserve those variants explicitly in the new template naming or configuration model.

Suppression policy

Recommended defaults:
Mailgun sourceMailChannels target
Complaints and permanent bouncesSuppress as both transactional and non-transactional.
UnsubscribesSuppress as non-transactional unless policy requires blocking all mail.
Domain-specific suppressionsDecide whether to preserve isolation with MailChannels sub-accounts or centralize suppression at the account level.

Inbound migration

Mailgun inbound routes do not map to MailChannels Email API resources. Inventory routes early and replace them with a dedicated inbound mail service, application mailbox processing, or another webhook-based receiving architecture.

Cutover checklist

  • Replace Mailgun form-data send calls with MailChannels JSON requests.
  • Move domain-specific tracking defaults into application send settings.
  • Export and relocate templates.
  • Create and publish MailChannels DKIM records.
  • Recreate webhook consumers for MailChannels events.
  • Decide whether Mailgun subaccounts or domains need MailChannels sub-account isolation.
  • Replace inbound routes before changing production MX or routing behavior.