Mailcow

All-in-one self-hosted mail server (Docker-based).

How MailKite fits

Running your own mail server is a lot. MailKite handles SMTP/MX/IMAP/storage for you — skip the mail server entirely.

Receive email into Mailcow 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 Mailcow: 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

Mailcow is a popular Docker-based, all-in-one mail server suite — SMTP, IMAP, SpamAssassin, ClamAV, a webmail UI, and an admin panel in one stack. It's the go-to for teams that want to self-host the full mail stack on their own hardware and are willing to operate it.

Key features

Pricing model

Open source (self-host)

Open source

GPL-3.0

View repository

Questions about Mailcow

What does Mailcow include?

An entire mail stack: SMTP sending, IMAP receiving, spam/virus filtering, webmail, and admin — deployed via Docker.

Mailcow vs MailKite?

Mailcow is self-hosted infrastructure you operate. MailKite is managed email — you point a domain and consume it over API/SMTP/IMAP, no server to run.

Related

Similar tools

Try MailKite alongside Mailcow.

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