Send + receive email with route rules and a mature sending API.
Comparing Mailgun? MailKite replaces the route DSL with dashboard routing and ships parsed JSON, not form fields.
See the full MailKite vs Mailgun comparisonA minimal, copy-paste starter. Swap in your own domain and API key.
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>",
}); 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.
Volume-tiered plans
Email platforms
Full-stack developer email APIs for sending and receiving.
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.
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.
Mailgun inbound is typically delivered as urlencoded form fields or raw MIME, which you parse yourself.
Deliverability heavyweight for outbound at scale; inbound parse is secondary.
View detailsBattle-tested transactional send + inbound parse, known for deliverability.
View detailsLowest per-email price; inbound needs receipt rules + S3 + SNS + Lambda.
View detailsReceive email as a webhook, send with one API. Unlimited free domains.
View detailsPoint a domain, drop in a webhook URL, and send your first email in minutes. Unlimited domains, no credit card.