Service
PowerMTA to KumoMTA migration
A PowerMTA to KumoMTA migration moves a sender from licensed PowerMTA to the open-source KumoMTA engine. Done properly, it preserves IP reputation, DKIM and SPF, and every message already in flight — cutting over one IP pool at a time rather than switching everything at once.
A PowerMTA to KumoMTA migration moves a high-volume sender from the licensed PowerMTA engine to the open-source KumoMTA, preserving IP reputation, DKIM, SPF and in-flight mail by cutting over one IP pool at a time rather than all at once. Each PowerMTA construct — VirtualMTAs, MX rollup, directive config — is translated to its KumoMTA equivalent in Lua, reputation and warm-up state carry across intact, and seed-list placement is measured before and after every pool cutover so the move is reversible at each step.
In short
- → Reputation lives on your IPs and domains, not on the MTA software, so it survives the move when DKIM keys and warm-up state are carried across intact.
- → Cutover happens one IP pool at a time, never a big-bang switch, so rollback is a routine option and problems surface on a fraction of the volume.
- → KumoMTA is free under Apache 2.0; PowerMTA is licensed from around 8,000 US dollars a year, so the cost shifts from a license to people and operation.
- → The commonly cited sweet spot is roughly 500,000 to 5 million messages a day — below it, a tuned Postfix or staying put can be the smarter call.
- → Most migrations run two to six weeks, driven by VirtualMTA count, IP estate size and how much historical data moves.
Why senders are moving
PowerMTA still moves a large share of the world’s commercial email, and for two decades it earned that position through reliability and a feature set built for high-volume sending. What changed is its future, not its present. According to industry reporting in 2026, after the product was folded into Bird’s omnichannel platform, the dedicated support and development teams behind it were disbanded. The engine on your servers keeps running; the relationship that used to keep it moving forward does not.
The cost moved in the wrong direction at the same time. Bird lists volume pricing from around 8,000 US dollars a year and quotes the rest privately against volume, instances and environments — charging, among other things, for separate development and test licenses. A long-time user writing on Capterra put the change plainly: the price rose sharply after the acquisition, and the core product has seen few real upgrades since, with the company no longer investing heavily in what is now mature software. KumoMTA’s own pitch leans directly on that feeling, asking whether you find yourself paying year after year while wondering what you are paying for, seeing roadmaps instead of releases, and unsure who is even left to answer a support question.
None of this means PowerMTA stopped working. It means the calculus changed: a stable but stalled commercial engine on one side, and a free, actively developed open-source one on the other. Senders are not panicking. They are planning the move on their own timeline, which is the right way to do it.
Figures and vendor claims are verified against current sources at publication and reviewed on a recurring basis.
What is KumoMTA, and how does it compare to PowerMTA?
KumoMTA arrived in 2023 as an open-source mail transfer agent built for serious, high-volume infrastructure — ESPs, high-volume SaaS, notification systems. It carries unusual pedigree: it was created by Wez Furlong, who spent close to a decade as chief architect at Message Systems, where he designed Momentum, historically one of PowerMTA’s only genuine competitors. The person who built the alternative to PowerMTA built the alternative to PowerMTA again, this time in the open.
Three design choices matter for anyone weighing a migration. It is written entirely in Rust, a memory-safe language that the US Office of the National Cyber Director and an NSA report have both recommended over C and C++ for critical infrastructure — a meaningful point given almost every other MTA, commercial or open source, is built on C or C++. Its configuration follows a “configuration as code” model in Lua, where instead of writing settings to a proprietary file format you write policies that can speak directly to your own data sources through hooks. And it is cloud-native, designed to run in containers and scale horizontally across Docker or Kubernetes, with first-class telemetry through Prometheus and Grafana and integrations for Kafka, webhooks, Vault and direct database access. It is released under the Apache-2.0 licence with its source on GitHub, which means no annual fee and full visibility into what you are running.
Is migrating from PowerMTA to KumoMTA the right move?
Honesty first, because not every PowerMTA estate should migrate. The volume where KumoMTA earns its keep is commonly put at roughly 500,000 to 5 million messages a day. Below that, a well-tuned existing setup, or even Postfix, may serve you without the operational learning curve of a new engine. Above it, KumoMTA’s per-tenant queuing, traffic shaping and analytics are exactly what high-volume sending needs.
There is a maturity trade to name as well. PowerMTA carries two decades of production use and, historically, commercial support; KumoMTA is the modern, fast-moving challenger with an active community but a shorter track record. The fair industry shorthand is that one is proven and the other is promising. That is not an argument against migrating — it is the reason a migration is handled deliberately, with reputation preserved and cutover staged, rather than as a weekend swap. The audit is where we test which engine genuinely fits your volume, your team and your appetite for operating modern infrastructure. If the answer is that you should stay on PowerMTA for now, that is what we will tell you.
What changes technically when you migrate to KumoMTA?
Most PowerMTA concepts have a direct KumoMTA equivalent; the shape of the configuration changes more than the capability does. The biggest shift is philosophical — from a directive-based file with several hundred parameters to Lua policies that you compose like code. A real example from KumoMTA’s own migration material: a static PowerMTA configuration of roughly 890 lines became about 266 lines of Lua, because repetition that a static file spells out can be expressed once as logic.
| PowerMTA | KumoMTA equivalent |
|---|---|
| VirtualMTA (VMTA) | Egress source |
| MX rollup via macros and rollup domains | Native MX rollup |
| Directive-based config, 200+ parameters | Lua "configuration as code" (init.lua + helpers) |
| One-line directives | Helper modules: egress_sources, DKIM, traffic shaping |
| Static config with occasional scripting | Lua hooks that read directly from your data sources |
| Limited built-in monitoring | Prometheus / Grafana metrics, plus a panel from us |
| Commercial annual license | Apache-2.0, free, source hosted on GitHub |
# PowerMTA: a VirtualMTA with its IP and per-domain rate (config directives)
<virtual-mta pool-a-1>
smtp-source-host 198.51.100.10 mta1.example.com
<domain gmail.com> max-msg-rate 180/min </domain>
</virtual-mta>
# KumoMTA: the same intent as an egress source + shaping (Lua + TOML helper)
egress_sources = {
['pool-a-1'] = { source_address = '198.51.100.10', ehlo_domain = 'mta1.example.com' },
}
# shaping.toml — per-provider, starting from the community baseline
['gmail.com'] max_message_rate = '180/min' The Lua curve, and the missing interface
The same flexibility that makes KumoMTA powerful is also where the risk of a migration sits. Configuration as code means real programming decisions — how concurrency is handled, how policies are structured, where a hook reaches into a database — and a translation that copies PowerMTA’s settings literally into Lua, without understanding why each one was set, can reproduce old problems in a new syntax or introduce new ones. This is why we translate against how you actually send, not just against the old config file.
Then there is the interface, or the absence of one. KumoMTA ships no web UI on purpose; it exposes metrics and leaves the dashboard to operators. For a team coming from PowerMTA’s analytics that is a genuine gap on day one. Closing it is part of the migration rather than an afterthought: we stand up monitoring through Prometheus and Grafana, and where you want a managed view, an optional control panel, so the move to a more capable engine does not cost you visibility in the process.
Migrations that have already happened
This is not a theoretical path. KumoMTA’s own materials note the PowerMTA-to-KumoMTA route is the migration its users ask about most, and real senders have made it — Postmark moved its sending onto KumoMTA, and other high-volume operators across the ESP and platform world have adopted it for exactly the reasons above: the license cost, the modern architecture, and the freedom from a roadmap they no longer trusted. The point is not that everyone is leaving PowerMTA. It is that the migration is well-worn enough to be done safely, with a method rather than improvisation.
How we run the migration
Five stages, each gated on the one before. Nothing moves to production until the step ahead of it is validated, because the entire promise of the migration is that your reputation and your in-flight mail come through it intact.
- Discovery & audit. We inventory every VirtualMTA, IP pool, sending domain, DKIM key and traffic-shaping rule in your current estate, so the translation works against the whole thing rather than a sample.
- Configuration translation. Each PowerMTA construct is mapped to its KumoMTA equivalent in Lua, then reviewed against how you actually send rather than how the config says you do.
- Reputation & authentication prep. DKIM keys, SPF and DMARC are carried across intact, and IP warmup state is confirmed, so reputation moves with you instead of starting over.
- Per-pool cutover. Traffic shifts one IP pool at a time while we watch deferrals, bounces and placement — never a single big-bang switch that risks the whole estate at once.
- Validation & handover. Seed-list inbox placement is measured before and after each cutover. Then we document everything, or stay on and operate KumoMTA for you.
What carries across
The promise of a careful migration is continuity, so it helps to be specific about what we carry from the old estate to the new one rather than rebuild. Your DKIM selectors and private keys move intact, so signed mail stays signed under the same identity providers already trust. Your SPF includes and DMARC policy come across unchanged, so alignment that passes today keeps passing tomorrow. The IP warmup state is preserved — the part that protects reputation most directly, since a warmed IP should arrive at KumoMTA already warmed rather than reset to zero.
Beyond authentication, we carry the things that quietly hold deliverability together. Suppression lists move across in full, because a single send to an address you had already suppressed can undo weeks of reputation work. Bounce categorisation and feedback-loop processing are rebuilt to behave the same way, so complaints and hard bounces keep feeding back into suppression instead of piling up unhandled. And the intent behind your traffic shaping — the per-provider rates and backoff you tuned over years — is translated into KumoMTA’s model rather than discarded, even though the syntax that expresses it changes completely. The aim throughout is that mailbox providers see the same sender behaving the same way, on a new engine they never needed to know about.
Why migrate one IP pool at a time?
The single most important choice in the method is what we refuse to do: switch everything at once. A big-bang cutover puts the entire estate’s reputation on a configuration that has never carried live traffic, and if anything is wrong — a mis-translated policy, a concurrency setting that behaves differently under real load — it is wrong everywhere, on production mail, with no quiet way back.
So we cut over per IP pool. One pool moves to KumoMTA while the rest keeps sending through PowerMTA, and we watch that pool closely against the baseline taken before the move — deferrals, bounce patterns, seed-list placement. If it behaves, the next pool follows. If it does not, we hold or revert that one pool while the rest of the estate carries on untouched, and fix the cause before trying again. The staged approach is slower than flipping a switch, by design. Rollback becomes a routine option rather than a crisis, problems surface on a fraction of your volume instead of all of it, and the providers see a gradual, unremarkable transition rather than a sudden change of behaviour that can itself draw scrutiny. For a multi-tenant platform the same logic runs tenant by tenant, so one customer’s migration can never put another’s mail at risk.
| Phase | Duration (weeks) |
|---|---|
| Discovery & audit | 1 wk |
| Config translation | 1 wk |
| Reputation & auth prep | 1 wk |
| Per-pool cutover | 2 wk |
| Validation & handover | 1 wk |
Source: Indicative for a mid-size estate. Actual duration varies with IP count, VirtualMTA count and data volume.
What does a KumoMTA migration really cost?
The headline is easy: KumoMTA’s licence is zero, against PowerMTA’s annual fee from around 8,000 dollars and up. The honest version is that free software is not free to run. The cost moves from a line item you paid a vendor to the people and time it takes to operate the engine well — which, depending on your team, is either a saving or a reason to have us operate it for you. What you do escape is per-message pricing: unlike a managed ESP, a self-hosted engine on dedicated IPs does not charge you more simply for sending more, which is precisely why it pays off at volume.
We model this properly during the audit rather than waving at “it’s open source, so it’s cheaper.” For a sender at the right volume, the combination of no licence, no per-message fee and dedicated IPs you already own usually lands well below the all-in cost of the alternatives. For a sender below that volume, the math can favour staying put, and we would rather tell you that before a migration than after one. One number worth setting expectations on: the migration itself is a project cost, not a recurring one, and it typically pays for itself within the first year purely on the licence saved at the eight-thousand-dollar floor, before the per-message savings at volume are even counted. After that first year, the open-source engine keeps earning while the licence would have kept billing.
The costs people underestimate are the ones that never appear on an invoice. Operating KumoMTA well takes time and a particular skill set, and the monitoring and dashboards PowerMTA bundled now have to be stood up and kept running. A team that migrates to escape a licence fee and then spends more engineering hours operating the engine has not saved money; it has moved the cost somewhere harder to see on a spreadsheet. That is not a reason to avoid migrating — for the right sender the saving is real and large — it is the reason to count the whole cost honestly, and to decide deliberately whether your team runs the result or we do. A migration justified by a number that ignores operating effort is the one most likely to disappoint later.
The mistakes a careful migration avoids
Most migrations that go wrong fail in predictable ways, and naming them is the clearest way to explain what care actually buys. The first is the literal translation: copying every PowerMTA directive into Lua without asking why it was set, which faithfully reproduces old workarounds and dead settings in a new language, and can turn a harmless static directive into an active bug under KumoMTA’s concurrency model. We translate intent, not syntax.
The second is the big-bang cutover — moving everything in one night because it looks faster, and learning the cost only when the whole estate is in trouble at once. The third is dropping the unglamorous data: suppression lists left behind, feedback loops not reconnected, warmup state reset, any of which can quietly poison the reputation the migration was meant to protect. The fourth is treating the missing interface as someone else’s problem — finishing the cutover and leaving a team to run a powerful engine from the command line with no dashboards, which is how a clean migration still ends in a deliverability incident a month later.
None of these is exotic. They are what happens when a migration is treated as a software swap rather than a reputation operation. The method exists so that each one becomes a step that gets checked, instead of a surprise that gets discovered.
Who operates KumoMTA after the migration?
Some teams want the keys back at handover; we document the estate — configuration, runbooks, the monitoring we stood up — and step away. Others would rather not staff a KumoMTA operator at all, and for them we stay on and run it as a managed service, with monitoring, authentication upkeep and incident response. Both are fine, and the migration itself is identical either way. The decision about who operates it afterward is one you can make at handover, not one you have to commit to before we start.
FAQ
Migration questions
How long does a PowerMTA to KumoMTA migration take?
Most run two to six weeks. The drivers are your VirtualMTA count, the size of your IP estate and how much historical data moves. A small single-pool sender can finish in days; a large multi-tenant platform takes longer because cutover is staged one pool at a time rather than switched all at once.
Is my volume big enough to justify KumoMTA?
The commonly cited sweet spot is roughly 500,000 to 5 million messages a day, where Postfix tuning gets painful and per-message ESP pricing gets expensive. Below that, staying on a well-tuned setup or even Postfix can be the smarter call, and we will say so. Above it, KumoMTA gives you the per-tenant queuing, traffic shaping and analytics that high-volume sending needs. The audit is where we work out which side of that line you are on.
Does KumoMTA cost less than PowerMTA?
The software is free and open source under Apache-2.0, where PowerMTA is licensed annually from around 8,000 US dollars and quoted privately above that. Your cost does not vanish, though — it shifts from a license to people and operation, which is where a managed engagement or our control panel comes in. We model the real total cost for your volume during the audit rather than pretending free software is free to run.
Will my IP reputation survive the move?
Yes, handled correctly. Reputation is attached to your sending IPs and domains, not to the MTA software. We preserve DKIM keys and warmup state and move traffic gradually, one pool at a time, so mailbox providers see continuity rather than a sudden change in behaviour that would itself look suspicious.
Is KumoMTA actually production-ready, and who uses it?
It has been in production since 2023 and was built by the architect who designed Momentum, one of PowerMTA’s few real historical competitors. Senders including Postmark have moved their sending onto it, and it is adopted across ESPs and high-volume platforms. The fair framing the industry uses is that PowerMTA is proven and KumoMTA is the modern challenger — which is exactly why the migration is handled carefully rather than casually.
Why does KumoMTA have no web interface?
By design. The project exposes metrics for Prometheus and Grafana and leaves the interface to operators, on the reasoning that every team wants something different. The gap is real, and closing it is part of what we do — monitoring dashboards and an optional control panel so you are not operating blind from the command line.
What happens to our historical data, and can we roll back?
Historical accounting and logs stay yours; we plan how much moves across versus what is archived before cutover. And because we migrate one IP pool at a time rather than all at once, rollback is built into the method: if a pool misbehaves after cutover, we can hold or revert it without the rest of the estate ever being at risk.
Can you migrate from Momentum or another engine as well?
Yes. Momentum and other commercial engines follow the same method: inventory, translate, preserve reputation, cut over per pool, validate. The PowerMTA-to-KumoMTA path is simply the one senders ask about most often right now, which is why this page focuses on it.
Start with the estate you already have.
The free audit maps your current PowerMTA setup and tells you what a migration would actually involve — scope, timeline and cost — before you commit to anything. If staying put is the better call, it will tell you that too.