Email-in with Mailgun

Step-by-step configuration for Mailgun Routes.

Mailgun is the other commonly-used parsing provider. Slightly more complex setup than Postmark (Routes vs. inbound servers), but works well at scale.

What you'll set up

  • A verified Mailgun domain.
  • A Route on that domain pointing at Nura24.

Step 1 — Add and verify a domain

In Mailgun, Sending → Domains → Add new domain.

You can either:

  • Use a subdomain of your existing domainmg.acme.com. Add the DNS records Mailgun gives you (TXT for SPF, DKIM, plus MX). Verify.
  • Use Mailgun's sandbox domain for testing — sandboxabc123.mailgun.org. Limited to authorized recipients; not for production.

Mailgun requires the domain to be verified before Routes can match it.

Step 2 — Create the Route

Receiving → Routes → Create Route.

  • Priority: 10 (or whatever order suits if you have multiple routes).
  • Filter expression: match_recipient("^tickets\+(.+)@your-mg-domain\.com$") — matches any tickets+<token>@… address on your Mailgun-verified domain.
  • Actions:
    • forward("https://api.nura24.com/email/inbound?secret=<your-platform-secret>") — POSTs the parsed message to us.
    • Optionally also store() if you want to keep a copy in Mailgun for debugging.
  • Description: "Nura24 inbound tickets" or whatever helps you remember.

Save the route.

Step 3 — MX records

The domain's MX records must point at Mailgun's servers. Mailgun shows you the exact records when you verified the domain in step 1; if you used a fresh subdomain, you've already set them.

If you want existing email on acme.com to keep working, don't point the apex MX at Mailgun. Use a separate subdomain (mg.acme.com or inbox.acme.com) whose MX is Mailgun's.

Step 4 — Test

Send an email to tickets+<your-inbox-token>@your-mg-domain.com. Mailgun's Logs tab shows the inbound; the Route action should fire; the ticket appears in your workspace within seconds.

Step 5 — Tell Nura24

Settings → Tickets → confirm the address shown matches your tickets+<token>@your-mg-domain.com.

Common Mailgun gotchas

  • Sandbox domain limitations — if you're using the Mailgun sandbox while testing, only Mailgun-authorized recipients can email it. Real customers can't. Production needs a verified custom domain.
  • MIME vs parsed mode — the Route action forward() posts in Mailgun's "Stored Messages" parsed format. Our parser handles this; you don't need to flip any other setting.
  • Webhook authentication — Mailgun signs webhooks with HMAC. We currently use the shared secret instead of HMAC verification — pass it in the query or header as in the example above.

Pricing

Mailgun Routes are billed by inbound count. Check their current pricing — they have a Flex tier that's free for low volume.