Mailgun

Send + receive email with route rules and a mature sending API.

How MailKite fits

Comparing Mailgun? MailKite replaces the route DSL with dashboard routing and ships parsed JSON, not form fields.

See the full MailKite vs Mailgun comparison

Send email from Mailgun with MailKite

A minimal, copy-paste starter. Swap in your own domain and API key.

send.ts
import { MailKiteClient } from "@mailkite/client";

// One API, your own DKIM-signed domain — no mail server to run
const mailkite = new MailKiteClient({ token: process.env.MK_API_KEY! });

await mailkite.send({
from: "you@yourdomain.com", // any address on a verified domain
to: "user@example.com",
subject: "Hello from Mailgun",
html: "<p>Sent in milliseconds via MailKite.</p>",
});
Read the sending quickstart

Mailgun is a mature email platform for sending and receiving. Its inbound feature, Routes, matches incoming mail with an expression rule language (match_recipient, match_header) and forwards or stores it. It's a flexible, established choice for teams that want fine-grained routing control.

Key features

Pricing model

Volume-tiered plans

Category

Email platforms

Full-stack developer email APIs for sending and receiving.

Questions about Mailgun

How do Mailgun Routes work?

Mailgun Routes use an expression language (match_recipient, match_header) to match incoming mail, then forward, store, or notify. You author and maintain the rules.

Mailgun Routes vs MailKite?

MailKite routes are configured per-address or catch-all in a dashboard (no regex), and inbound arrives as parsed JSON with built-in retries. See /alternatives/mailgun-routes.

Does Mailgun parse inbound to JSON?

Mailgun inbound is typically delivered as urlencoded form fields or raw MIME, which you parse yourself.

Related

Similar tools

Try MailKite alongside Mailgun.

Point a domain, drop in a webhook URL, and send your first email in minutes. Unlimited domains, no credit card.