Haraka

High-performance, pluggable open-source SMTP server (Node.js).

How MailKite fits

MailKite's own inbound MX edge runs on Haraka — so you get Haraka-grade handling without running it.

Receive email into Haraka via MailKite

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

webhook.ts
import { verifyWebhook } from "@mailkite/client";

// MailKite POSTs every inbound email at your domain as JSON.
// Point a route at this handler in the MailKite dashboard.
export default async function handler(req: Request) {
const raw = await req.text();
const sig = req.headers.get("x-mailkite-signature") ?? "";

// Reject anything not signed by your webhook secret
const ok = await verifyWebhook(sig, raw, process.env.MK_WEBHOOK_SECRET!);
if (!ok) return new Response("bad signature", { status: 401 });

const email = JSON.parse(raw);
// Route into Haraka: open a ticket, create a task, store a record
await routeIntoName(email); // email.from · email.subject · email.text

return new Response(JSON.stringify({ ok: true }));
}
Read the inbound webhooks guide

Haraka is a high-performance, pluggable SMTP server written in Node.js, widely used as the inbound MX edge for custom mail platforms and high-volume senders. Its plugin architecture lets you intercept every stage of the SMTP transaction. It's infrastructure for teams building their own mail handling, not an end-user product.

Key features

Pricing model

Open source (self-host)

Open source

MIT

View repository

Questions about Haraka

What is Haraka used for?

As a pluggable SMTP daemon — most often the inbound MX edge of a custom mail platform, where its plugins handle spam filtering, routing, and handoff.

Does MailKite use Haraka?

Yes — MailKite's inbound MX edge is a Haraka instance that parses and authenticates mail before POSTing it as JSON to your webhook.

Related

Similar tools

Try MailKite alongside Haraka.

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