Skip to content
OS Domains
Sending infrastructure

Email MTA comparison: Postfix, Exim, PowerMTA, KumoMTA, Halon and MailerQ

A mail transfer agent (MTA) is the engine that queues, signs and delivers your outbound email to receiving servers. The right choice follows volume more than brand: Postfix and Exim handle most senders under roughly 500,000 messages a day at no licence cost; KumoMTA covers the 500,000-to-5-million range with a modern Rust-and-Lua policy engine and, again, no licence fee; PowerMTA, Halon and MailerQ are commercial engines built for 10-million-plus senders that need vendor support, advanced traffic shaping or a queue-centric architecture. OS Domains hosts and manages all six on EU-resident infrastructure, so the engine is matched to your workload rather than to a sales target.

Six mail transfer agents, one honest question — which engine fits your sending volume, your team and your budget, and which one you should not pay for.

In short

  • Volume sets the shortlist: under ~500K/day, Postfix or Exim; 500K–5M/day, KumoMTA; 10M+/day, PowerMTA, Halon or MailerQ.
  • Licence cost is the first fork. Postfix, Exim and KumoMTA are free and open source; PowerMTA and Halon are commercial, and MailerQ runs roughly €1,500–3,500 a year.
  • If you only send outbound and want modern tuning without a licence, KumoMTA (Rust + Lua, policy-centric) is usually the answer before you pay for anything.
  • Configuration model matters as much as raw throughput: file-based (Postfix, Exim), policy-scripted (KumoMTA in Lua, Halon in HSL) or queue-centric on a broker (MailerQ on RabbitMQ).
  • The classified-ads platform leboncoin moved from Postfix to PowerMTA as daily volume approached about 12 million messages — a concrete marker of where self-managed open source gives way to commercial scale.
Start with the engine, not the brand

The MTA is the part of your stack that decides how mail leaves

Most comparisons of email infrastructure argue about dashboards and pricing pages. The decision that actually shapes deliverability sits one layer down, in the mail transfer agent: the software that accepts your outbound mail, signs it, holds it in a queue, and hands it to receiving servers one connection at a time. Choose the wrong engine for your volume and you spend evenings fighting deferrals; choose the right one and the traffic shaping happens quietly underneath you.

Six engines come up again and again when senders compare options, and they split cleanly into two camps. Postfix, Exim and KumoMTA are open source and carry no licence. PowerMTA, Halon and MailerQ are commercial, and you pay for support, for traffic-shaping features refined over years, or for an architecture you would otherwise build yourself. This page walks through all six without a thumb on the scale, because the point is to land you on the engine your sending actually needs.

A note on where we stand: OS Domains runs several of these engines as managed infrastructure. That gives us operational experience with how they behave under load — and it is also why we have no reason to talk you into a heavier engine than your volume warrants. The infrastructure is dedicated and EU-resident whichever engine runs on it.

First, the honest caveat

Does the engine you pick actually change inbox placement?

Only indirectly — and saying so up front saves you from buying the wrong thing. Whether your mail lands in the inbox is governed by sender reputation, by authentication, and by how engaged your recipients are. None of that is set by the MTA. What the engine controls is the traffic shaping that protects reputation once you send at scale: how many connections it opens to each provider, how it backs off when a receiver starts deferring, how it isolates a marketing stream from a password-reset stream so one cannot poison the other.

Below a few hundred thousand messages a day, those controls rarely decide an outcome, and a well-configured Postfix is indistinguishable from anything you could pay for. Past that volume the picture changes: per-destination control becomes the difference between a reputation you hold steady and one you spend your week defending. That is the real axis this comparison turns on, and it is why the first question is never “which is best” but “how much do you send.”

The framework that survives every comparison

Let daily volume draw your shortlist

Strip away the marketing and one rule does most of the work. Under roughly half a million messages a day, the open-source general-purpose engines — Postfix and Exim — are enough, and a licence buys you nothing. From there to about five million, KumoMTA occupies a band that used to force an expensive jump: modern policy control, written in Lua, at no licence cost. Past ten million a day, the commercial engines earn their keep, because that is where vendor support and years of traffic-shaping refinement stop being a luxury. The diagram below is the decision in one view.

low volume very high volume Postfix · Exim under ~500K / day open source · no licence general-purpose MTA KumoMTA 500K – 5M / day open source · Rust + Lua policy-centric tuning the no-licence middle PowerMTA · Halon · MailerQ 10M+ / day commercial · vendor support advanced traffic shaping

Volume draws the shortlist; the rest of this page narrows it. Within the open-source band the choice is configuration style. Within the commercial band it is architecture and what you want to program. And the single most common mistake — paying for an engine you do not yet need — is avoided simply by reading the diagram left to right rather than right to left.

The six engines, neutrally

What each one is actually for

Two open-source general-purpose engines, one open-source modern engine, three commercial engines. Here is the honest one-paragraph read on each.

Postfix

Up to ~500K/day · Open source (IBM Public License)

The default workhorse of the Unix mail world. Postfix is written in C, prizes safe defaults and predictable behaviour, and runs almost everything from a single mail server to the front of a large platform. For outbound sending it is competent and free, but its per-destination traffic shaping is coarse compared with engines built specifically for bulk delivery — which is exactly why high-volume senders eventually grow out of it.

Origin
Wietse Venema's mail server, in active use since 1998
Config model
File-based config (main.cf / master.cf)

Exim

Up to ~500K/day · Open source (GPL)

Exim's draw is its configuration language: a routers-and-transports model that lets an administrator express intricate routing rules in one place. That flexibility is why it sits under most cPanel hosting. For pure outbound sending it covers the same ground as Postfix, and the choice between them is usually about which configuration style your team already knows rather than a throughput gap.

Origin
University of Cambridge, shipped by default on cPanel/WHM
Config model
Single-file config with a routers/transports pipeline

PowerMTA

10M+/day · Commercial (per-server licence)

The long-standing reference for enterprise outbound. PowerMTA introduced VirtualMTA — the ability to bind sending streams to specific IPs and identities — and gives operators fine control over connection limits, per-ISP throttling and IP rotation. Version 4.5 added IP-level rate limiting. It is what very large senders reach for when self-managed open source stops giving them the traffic shaping they need, and it carries a licence cost to match.

Origin
Port25, now under Bird (formerly MessageBird)
Config model
VirtualMTA pools, per-domain policy files

KumoMTA

500K–5M/day · Open source (Apache 2.0)

The newest engine here and, for many senders, the most consequential. KumoMTA is written in Rust for throughput and memory safety, and its policy is expressed in Lua, so traffic shaping, suppression and routing are code rather than static files. It targets the volume band where Postfix runs out of road but a commercial licence is hard to justify — and it does so at no licence cost. For a sender that only needs to push outbound mail well, it is frequently the right answer before any money changes hands.

Origin
Built by veterans of the high-volume MTA world
Config model
Policy-centric, scripted in Lua

Halon

10M+/day · Commercial

Halon is a fully programmable MTA: HSL lets operators write logic that runs at each stage of the mail flow, which appeals to ESPs and security-conscious senders that want content inspection, custom routing and filtering woven into delivery itself. It competes with PowerMTA at the top of the volume range, and the decision between them usually turns on whether you value HSL's programmability or PowerMTA's traffic-shaping pedigree.

Origin
Halon Security, Sweden
Config model
Programmable via Halon Scripting Language (HSL)

MailerQ

10M+/day · Commercial (roughly €1,500–3,500/year)

MailerQ takes a different architectural bet: it is queue-centric, written in C++ and built around RabbitMQ, so the message queue is a first-class, inspectable part of the system. That suits senders who want to manipulate the queue directly and integrate delivery into a broader message-broker architecture. It is the most explicitly queue-driven of the commercial options, with a published annual price band that is modest next to enterprise PowerMTA deployments.

Origin
Copernica, Netherlands
Config model
Queue-centric, built on RabbitMQ (C++)
Side by side

The six engines on the dimensions that decide

Licence, language, volume band, configuration model and the job each is built to do best.

Postfix Exim KumoMTA PowerMTA Halon MailerQ
Licence Free, open source Free, open source Free, open source Commercial Commercial Commercial (~€1.5–3.5K/yr)
Language C C Rust + Lua C C/C++ + HSL C++ + RabbitMQ
Volume sweet spot <500K/day <500K/day 500K–5M/day 10M+/day 10M+/day 10M+/day
Configuration Files (main.cf) Routers/transports Lua policy VirtualMTA + policy HSL scripts Queue + rules
Best when you need A reliable general MTA Intricate routing rules Modern outbound, no licence Top-end traffic shaping Programmable delivery Queue-level control

The highlighted column is not a favourite — it marks the engine most senders overlook, because it sits in the volume band where people assume they must start paying.

The fork that saves the most money

Open source or commercial — where is the real line?

It is not a line of capability so much as a line of responsibility. The open-source engines hand you everything and expect you to operate it: you patch, you tune, you carry the pager when a receiver starts throttling you at 2 a.m. The commercial engines wrap that in support, in a roadmap, and in features — PowerMTA’s traffic shaping, Halon’s in-flow scripting, MailerQ’s queue model — that would take real engineering time to reproduce.

So the honest test is narrow: do you need a named capability the licence provides, or do you just need to send outbound mail well? If it is the latter, the modern open-source engine has closed most of the gap. KumoMTA does in Lua what used to require a commercial policy language, and it does it without a per-server invoice. Reach for a paid engine when a concrete requirement — a support SLA, a specific shaping behaviour, a broker architecture — forces the decision, not because high volume by itself sounds like it should cost money.

The one-line rule

If you only send outbound and you have outgrown Postfix, try KumoMTA before you pay for anything. Buy commercial when a specific feature — not the volume itself — makes you.

What operating one looks like

The queue is where you live, whichever engine you run

Every one of these engines comes down to the same daily reality: a queue of messages, a set of destinations deferring or accepting them, and your decisions about how hard to push. On Postfix you inspect that queue with postqueue; on a commercial engine you read it from a console or an API. The commands differ; the question they answer — what is stuck, to which provider, and why — does not.

$ postqueue -p | tail -n 6

-Queue ID-  --Size-- ----Arrival Time---- -Sender/Recipient-------
9F21C4E0A1*    4123 Mon Jun 29 09:14:02  [email protected]
                                         [email protected]
3B07A19F22     4123 Mon Jun 29 09:14:02  [email protected]
       (host mx.example.net deferred: 421 4.7.0 too many connections)
                                         [email protected]

-- 2 Requests, deferring on rate, not rejecting --

A 421 deferral like the one above is the receiver asking you to slow down, not to stop. Reading it correctly — backing off per destination rather than globally — is the work the better engines make easier, and the work a managed operator does for you so the queue never becomes your evening.

When the answer is “none of the above, yet”

When you should not switch engines at all

If your sending is comfortably under a few hundred thousand messages a day and your current Postfix or Exim is delivering, changing engines is effort spent on the wrong layer. Your time pays back faster in authentication and list hygiene — clean SPF, DKIM and DMARC alignment, suppression of dead addresses — than in a migration that warms new IPs for no gain.

If you are tempted by a commercial engine purely because the volume feels large, sit with the KumoMTA option first. And if you are mixing marketing blasts and transactional mail on one stream, no engine rescues you from a complaint spike on the marketing side dragging your password resets into spam — stream isolation does, and that is a configuration decision available on every engine here. The right move is sometimes to fix the streams, not to change the software.

Where OS Domains fits

We host the engine you need, not the one we would rather sell

A vendor that builds one engine cannot write the page you just read — every comparison would bend toward its own product. We host Postfix, KumoMTA and PowerMTA as managed infrastructure and advise on the rest, which means the recommendation can follow your volume honestly. A 400,000-a-day sender gets a tuned open-source engine and keeps the licence money; a sender pushing tens of millions gets PowerMTA with the traffic shaping that volume needs. The advice does not change with our margin.

What stays constant underneath every option is the part you cannot get from a download: dedicated IPs whose reputation we manage, and EU-resident infrastructure under an Austrian entity, so the sending leg raises no cross-border transfer question for your compliance review. The engine is a choice; the dedicated, sovereign, operated foundation it runs on is the thing that is hard to assemble yourself — and it is the same whichever of the six you land on.

Questions senders actually ask

MTA comparison: the practical questions

Does the MTA you choose actually change deliverability?

Indirectly. Inbox placement is driven mostly by sender reputation, authentication and list quality, not by which engine signs the message. What the MTA controls is the traffic shaping that protects reputation at scale — per-ISP connection limits, backoff on deferrals, IP warming and stream isolation. Below a few hundred thousand messages a day those controls rarely decide anything, so Postfix or Exim is fine. Above that, an engine with finer per-destination control (KumoMTA, then PowerMTA, Halon or MailerQ) makes it easier to hold a clean reputation without manual firefighting.

When should I pay for a commercial MTA instead of using KumoMTA?

When you genuinely need what the licence buys: vendor support with an SLA, traffic-shaping features tuned over years (PowerMTA), in-flow programmability (Halon), or a queue-centric, broker-integrated architecture (MailerQ). If you only need to send outbound mail well in the 500K–5M/day band, KumoMTA usually covers it at no licence cost, and paying for a commercial engine buys capabilities you will not use. The honest order is: try the free modern engine first, and pay when a specific requirement forces it.

Postfix or Exim — does it matter for sending?

For outbound delivery the throughput is comparable, so the deciding factor is configuration style and existing familiarity. Exim’s routers-and-transports model expresses complex routing cleanly and ships by default on cPanel/WHM, so hosting-heavy teams often already run it. Postfix’s file-based configuration is widely documented and is the more common starting point for purpose-built sending hosts. Neither is built for very high outbound volume; both are the right call below roughly half a million messages a day.

What did large senders actually migrate to, and at what point?

A useful public marker: the classified-ads platform leboncoin ran Postfix and moved to PowerMTA as daily volume approached about 12 million messages. That is the shape of the typical path — open source carries a sender a long way, and the move to a commercial engine happens when traffic shaping and per-ISP control become the bottleneck rather than raw sending capacity. Today KumoMTA gives many senders an intermediate step that did not exist when that migration was common.

Can I switch engines later without rebuilding everything?

The application side is portable because SMTP submission is standardised — your app keeps talking to a relay over the same protocol. What does not move automatically is the operational layer: IP reputation has to be warmed on the new addresses, authentication (SPF, DKIM, DMARC) re-aligned, and policy or VirtualMTA configuration rewritten in the new engine’s model. A migration is therefore a reputation-and-configuration project more than a code change, and it is worth planning the warm-up rather than cutting over cold.

Do you only host one of these engines?

No. OS Domains runs Postfix, KumoMTA and PowerMTA as managed sending infrastructure and advises on Exim, Halon and MailerQ for the cases that suit them. The recommendation follows your volume, team and budget — we have no incentive to push you onto a heavier engine than your sending needs, because the infrastructure is dedicated and EU-resident regardless of which engine sits on it.

Pick the engine with someone who runs all of them

Tell us your volume. We will tell you the engine.

No licence upsell, no heavier engine than your sending needs — a straight read on Postfix, Exim, PowerMTA, KumoMTA, Halon or MailerQ, hosted on dedicated EU infrastructure.

Phone +43 1 205 11 80 Mon–Fri · 9–18 CET
Email [email protected] Avg response 4h business
Office Fleischmarkt 1, 1010 Wien By appointment