Apache 2.0 · same IPs · same reputation · free pre-migration audit
Off PowerMTA without Gmail noticing, without losing reputation, without rewriting the app.
Bird (the entity that acquired SparkPost which had previously acquired PowerMTA from Port25) discontinued the perpetual PowerMTA licensing model during 2024-2025 and shifted annual costs upward by approximately 4 to 12 times depending on volume tier; the 2026 baseline starts at 8,000 USD per year for entry tier and reaches 100,000+ USD for enterprise. KumoMTA is the Apache 2.0 open-source replacement built in Rust with Lua scripting. Founded by Wez Furlong (ex-Chief Architect Message Systems, designed the Momentum/Ecelerity MTA) and team veterans from Message Systems and Port25; the engineers who built PowerMTA and Momentum now build KumoMTA, making the migration a continuation onto a successor platform. Functional parity at scale: tens of millions of messages per hour single node, per-tenant queue management, Lua-based traffic shaping, per-ISP throttling, DKIM signing, bounce classification, FBL processing, native Prometheus metrics with Grafana dashboards. The EMP migration runs four controlled phases preserving IPs, accumulated reputation, DKIM selectors and keys, sending domains, downstream integrations. Free pre-migration audit included with real annual savings calculation against the existing renewal quote.
PowerMTA versus KumoMTA on the parameters that matter.
The comparison below covers the dimensions infrastructure teams actually evaluate during MTA selection: license model, language and runtime, performance characteristics, configuration paradigm, integration surface, observability stack, and team continuity. PowerMTA is a long-standing commercial engine with decades of production reliability; KumoMTA is the modern open-source alternative built by the same engineers who built PowerMTA and Momentum.
PowerMTA
Commercial
Long-standing enterprise MTA, originally Port25, acquired by SparkPost, then by Bird.
LicenseCommercial, $8K to $100K+ per year volume tiers, perpetual model discontinued 2024-2025
LanguageC-based, 200+ declarative configuration parameters in pmta.conf
RuntimeSynchronous worker model, Linux and Windows
ConfigDeclarative directives, parsed at startup, no conditional logic in config
Performance2.5M+ msg per peak hour single instance (Jobtome case study)
IntegrationsWebhooks, AMQP, Kafka, Vault, direct DB access, REST API
SupportCommunity Discord, optional paid support from KumoMTA team
The architectural difference matters because PowerMTA was designed for an era of bare-metal servers and long-lived infrastructure where configuration is set once and rarely changes. KumoMTA was designed for the era of cloud-native operations and configuration-as-code where the MTA needs to react to runtime conditions. The team continuity is the structurally interesting part: Wez Furlong designed Momentum at Message Systems, the engine that ran SparkPost (acquired by Bird) and powered the largest ESPs for over a decade. The founding team includes veterans from Message Systems and Port25 (the original PowerMTA company); the engineering pedigree that produced PowerMTA and Momentum now produces KumoMTA, which means the migration represents continuation onto a successor platform rather than a leap into unfamiliar territory.
Real savings calculation · three illustrative volume tiers
How much the migration actually saves per year.
The numbers below represent realistic 2026 customer scenarios EMP has processed during the audit phase. The exact savings depend on the existing PowerMTA license tier, the renewal quote from Bird, and the customer-side infrastructure cost differences. The free pre-migration audit delivers the per-customer calculation against the actual renewal quote rather than illustrative numbers.
2026 cost calculator · illustrative tiers
PowerMTA annual cost vs KumoMTA + EMP migration fee
Assumes customer-side infrastructure (hardware, hosting, IPs) approximately constant between the two MTAs; KumoMTA Rust efficiency typically reduces infrastructure cost 20-30 percent which the calculation conservatively excludes.
Entry tier
Under 5M monthly
PowerMTA / year$8,000
EMP migration (one-time)$18,500
KumoMTA license$0
Year-1 net change+$10,500
Year-2 onward savings-$8,000
Payback: 28 months
Mid tier
5M-50M monthly
PowerMTA / year$45,000
EMP migration (one-time)$34,500
KumoMTA license$0
Year-1 net savings-$10,500
Year-2 onward savings-$45,000
Payback: 9 months
Enterprise tier
50M+ monthly
PowerMTA / year$120,000
EMP migration (one-time)$68,000
KumoMTA license$0
Year-1 net savings-$52,000
Year-2 onward savings-$120,000
Payback: 7 months
The Mid tier and Enterprise tier are where the migration math becomes obviously favorable. The Entry tier payback at 28 months is slower because the migration fee is a larger fraction of the annual savings; for Entry tier customers the migration decision typically depends on factors beyond cost alone (cloud-native architecture preferences, open-source policy, observability stack consolidation). Beyond direct license savings the migration delivers second-order benefits: 20 to 30 percent infrastructure cost reduction from KumoMTA Rust efficiency, elimination of license audit risk, operational predictability versus the unilateral pricing changes the commercial model has demonstrated during 2024-2026, the ability to inspect and modify the MTA source code when needed.
Configuration translation · pmta.conf directive on the left, Lua function on the right
What the actual configuration translation looks like.
Approximately 90 to 95 percent of PowerMTA configurations translate cleanly to KumoMTA Lua because the project was designed explicitly for PowerMTA migration as the primary use case. The translation is mechanical for most directives. The example below shows a representative virtual MTA configuration in PowerMTA and the equivalent Lua function in KumoMTA.
PowerMTA · pmta.confDeclarative directives
# pmta.conf · virtual MTA with DKIMhost-namemta1.example.compostmasterpostmaster@example.com# Virtual MTA for Gmail traffic<virtual-mtagmail-pool>smtp-source-host203.0.113.10 mta1max-smtp-out20max-msg-rate10000/h</virtual-mta># DKIM signing for example.com<domain-keyselector1,example.com>private-key-file/etc/pmta/dkim.keyalgorithmrsa-sha256</domain-key># Per-ISP throttle for Gmail<domaingmail.com>max-msg-rate100/minmax-connections10</domain>
KumoMTA · init.luaLua code as config
-- init.lua · same virtual MTA + DKIMlocal mod = require('policy-extras.dkim_sign')
local kumo = require('kumo')
-- Virtual MTA for Gmail traffic
kumo.on('get_egress_path_config', function(domain, source, site)
return kumo.make_egress_path {
source_address = '203.0.113.10',
connection_limit = 20,
max_message_rate = '10000/hr',
}
end)
-- DKIM signing for example.com
kumo.on('smtp_server_message_received', function(msg)
msg:dkim_sign {
domain = 'example.com',
selector = 'selector1',
key = '/opt/kumomta/dkim.key',
}
end)
-- Per-ISP throttle for Gmailif domain == 'gmail.com'then
config.max_message_rate = '100/min'
config.connection_limit = 10
end
The translation pattern is consistent across construct types. PowerMTA virtual MTAs become KumoMTA egress paths via make_egress_path; the directive parameters map directly (max-smtp-out becomes connection_limit, max-msg-rate becomes max_message_rate). DKIM signing translates to Lua hooks on message events using msg:dkim_sign() with the same selector and key file path; the existing DKIM keys carry forward without regeneration which preserves the published DNS records and receiver-side reputation. The Lua approach surfaces two advantages: conditional logic is native, and external integration is straightforward.
The migration process · four controlled phases · 4 to 16 weeks depending on tier
How the engagement runs end-to-end.
The phases run sequentially with strict gating: each requires explicit customer sign-off before the next begins. The rollback path retains the PowerMTA instance configured and operational for 30 days post-cutover (60 days for Enterprise). The cutover is invisible to receivers because the same IPs continue sending the same DKIM-signed messages from the same domains.
Phase 01
Week 1 (free)
Pre-migration audit
pmta.conf review, virtual MTA inventory, DKIM key audit, integration mapping, savings calculation against Bird renewal quote. 15-page deliverable.
Phase 02
Week 1-3
Install + translate
KumoMTA installation on customer servers, configuration translation from pmta.conf to Lua scripts, DKIM key migration preserving selectors, integration testing.
Phase 03
Week 3-7
Parallel delivery
Routing proxy splits traffic 10/90 then 25/75 then 50/50 ramping over 2-4 weeks. Behavior validation against real production traffic.
Phase 04
Week 7-16
Cutover + handoff
100 percent KumoMTA. PowerMTA frozen for rollback 30-60 days. Runbook delivery, training, PowerMTA decommissioning at license expiration.
Known risk items · what the migration plan explicitly addresses
What can go wrong, and how the plan handles it.
The risks below come from the four documented public PowerMTA-to-KumoMTA migrations (AWeber and other ESPs) plus EMP 2024-2026 migration history. Each item is identified during the audit phase and the migration plan documents the specific mitigation.
Risk 01
Custom PowerMTA modules
Customer-side custom modules or external scripts that integrate with PowerMTA proprietary APIs. The audit identifies all custom integrations and the plan documents the Lua equivalent or alternative integration approach.
Risk 02
Windows-only deployment
PowerMTA runs on Windows, KumoMTA is Linux-only. Customers on Windows PowerMTA require additional Linux server provisioning before migration; the plan includes the OS transition with infrastructure timeline.
Risk 03
SparkPost Signals dependency
Customers using SparkPost Signals for analytics lose the commercial analytics platform. The plan substitutes with Prometheus + Grafana stack or equivalent open-source telemetry; the migration includes the dashboards.
Risk 04
Lua learning curve
Customer ops teams accustomed to PowerMTA declarative config face a Lua scripting learning curve. The runbook handoff includes a 4-hour Lua walkthrough and the standard configuration patterns are pre-built.
Honest assessment · when staying on PowerMTA is correct
If the PowerMTA renewal is below 12K and the team has Lua aversion, stay.
The migration math becomes unfavorable at the Entry tier when several conditions align. If the PowerMTA renewal quote is below 12,000 USD per year, the customer ops team has explicit Lua aversion, the customer has no policy preference for open-source, and the deployment is Windows-only, the migration produces operational friction that outweighs the cost savings. The 28-month payback at Entry tier becomes effectively infinite once the customer-side operational cost of the Lua transition is factored in. EMP runs the cost-benefit calculation during the free pre-migration audit and explicitly recommends staying on PowerMTA when the customer profile does not justify migration; approximately 18 percent of audits conclude with the recommendation to stay. The audit is sold as zero-cost specifically because the recommendation might be to not engage further; the audit value to the customer is the structured analysis that supports the renewal versus migration decision regardless of which way the analysis points.
Transparent pricing · four tiers by scope · audit always free
Free audit, then fixed-fee execution.
All execution tiers are fixed-fee. The pre-migration audit is genuinely zero-cost and includes the savings calculation against the customer's actual Bird renewal quote; the audit deliverable has value even if the customer team executes migration internally afterward.
What the CTO, deliverability lead, and CFO actually ask
The real questions before signing the migration SOW.
"Bird says the new pricing is industry-standard. Is the migration justified?"
The pricing justification from Bird reflects a strategic positioning argument rather than a cost-driver analysis; the underlying production cost of running PowerMTA per customer has not changed during 2024-2025 to support a 4-12x price increase. The pricing shift reflects post-acquisition portfolio repositioning, where Bird optimizes the PowerMTA revenue contribution toward the enterprise tier and accepts attrition at the lower tiers; that is a legitimate business strategy for Bird but it does not align with the customer interest. The "industry-standard" framing typically references comparable commercial MTAs (GreenArrow, MailerQ, Halon) that are similarly priced; what the framing omits is that the open-source alternative (KumoMTA) is built by the same engineers and delivers functional parity. The migration is justified when the savings exceed the migration cost over a reasonable payback horizon (12-24 months); the free audit produces the per-customer answer to that question.
"Will Gmail or Outlook reputation be affected by switching to KumoMTA?"
No, the receivers do not have visibility into the customer-side MTA technology. Receivers only see the IP, the DKIM signature, the sending domain, the message headers, and the message content; none of these change during the migration. The same IPs continue sending; the same DKIM keys continue signing; the same domains continue in the From and Return-Path; the same content continues being delivered. The reputation accumulated on the existing IPs over months or years carries through the migration without interruption because the reputation is anchored to the IP (controlled by hosting provider, not changing) and the DKIM domain pair (controlled by the customer, not changing). The documented AWeber migration to KumoMTA preserved reputation; the EMP 2024-2026 migration history records zero customers experiencing reputation degradation traceable to the MTA technology change. This is structurally different from the Postfix-to-MTA migration where the new IPs typically warm up alongside the old; in the PowerMTA-to-KumoMTA case the IPs do not change.
"How does the Lua scripting compare to declarative pmta.conf for our ops team?"
The transition introduces a learning curve but the productivity ceiling is higher in Lua. The standard PowerMTA configurations (virtual MTAs, DKIM signing, per-ISP throttling, bounce processing) have direct Lua equivalents that customers can copy-paste from the KumoMTA documentation and adjust for their specific values; the migration runbook EMP delivers includes the production-ready Lua for the customer's specific configuration. The Lua learning curve becomes meaningful when customers want to write conditional logic or integrate with external systems, which is exactly the scenario where Lua becomes more productive than PowerMTA: declarative configs cannot do "if Microsoft complaints above 0.05 percent then throttle this domain for the next 4 hours" but Lua can express that in 8 lines. The customer ops teams that adopt Lua productively are the ones that previously worked around PowerMTA limitations with external scripts; for those teams the Lua becomes a positive transition because the scripting moves into the MTA process where it is more efficient and more reliable.
"What is the support model after migration?"
KumoMTA support has two layers: community Discord and optional paid support from the KumoMTA team. The community Discord is active with the founding team and core contributors responding to issues; for non-emergency questions the community channel is typically faster than vendor email support. The paid support tier (kumomta.com/support) provides SLA-backed response for enterprise customers requiring contractual guarantees; pricing varies by SLA tier but is structured per-incident rather than per-license, which is significantly different from PowerMTA bundled support. EMP offers a maintenance retainer at 1,800 USD per month for customers preferring external support; the retainer includes quarterly health reviews and on-call response to incidents. The Enterprise migration tier includes 90 days of EMP on-call support included in the migration fee; after the 90 days the customer chooses retainer, KumoMTA paid support, or community-only based on the in-house operational maturity.
"Can we keep PowerMTA for some streams and KumoMTA for others?"
Yes, hybrid environments are valid and EMP designs them when the customer profile justifies. The typical hybrid pattern keeps PowerMTA running for streams that depend on specific PowerMTA features (proprietary integrations, Windows-specific deployment, SparkPost Signals analytics) while KumoMTA handles streams without those dependencies. The hybrid extends the timeline for full migration because both MTAs remain in production indefinitely until the dependencies are resolved; some customers operate hybrid permanently because the migration cost of the remaining streams exceeds the license savings. The hybrid does not affect IP reputation because the IPs can serve either MTA; the routing layer decides which MTA gets which traffic. Approximately 22 percent of EMP PowerMTA-to-KumoMTA engagements result in hybrid rather than full migration; the audit identifies which scenario applies during the initial discovery.
"What is the realistic timeline for our specific environment?"
The timeline depends on three variables documented during the audit. First, configuration complexity: number of virtual MTAs, custom routing rules, integration points; simple configurations migrate in 4-6 weeks, complex configurations require 10-16 weeks. Second, customer-side validation bandwidth: the parallel delivery period requires customer operations team review of the KumoMTA behavior under real traffic, which the customer team has to schedule; this is often the longest variable. Third, business calendar constraints: customers avoid cutover during peak sending seasons (Black Friday, year-end campaigns, regulatory deadlines), which can extend the timeline by 4-8 weeks if the migration straddles a peak period. The audit delivers the customer-specific timeline estimate; EMP commits to that timeline in the SOW with explicit milestones rather than discovering schedule slippage during execution.
EMP retainer: $1,800/month for external operational support
Start with the free audit. Savings calculation in 1 week.
The audit is genuinely zero-cost and includes the savings calculation against the customer's actual Bird PowerMTA renewal quote. The 15-page deliverable contains the pmta.conf review, virtual MTA inventory, DKIM key audit, integration mapping, and the per-customer annual savings number against the customer's specific renewal quote. The audit value to the customer is the structured analysis supporting the renewal-versus-migrate decision regardless of which way the analysis points; approximately 18 percent of audits conclude with the EMP recommendation to stay on PowerMTA when the customer profile does not justify migration.