For Agencies

One platform.
All your clients.

Stop paying per-client fees for email marketing. Punchmail lets you manage every client on one self-hosted platform. Unlimited lists, unlimited sends.

terminal
$ git clone https://github.com/punchmail/punchmail
$ cd punchmail && docker compose up -d
# That's it. You're sending.
✓ Punchmail is running at http://localhost

Built by an email deliverability expert with 27 years of experience

0
Monthly fees
Subscribers
Emails / month
1
Price. Forever.
https://your-server.com/dashboard
📊 Dashboard
👥 Subscribers
📋 Lists
📨 Campaigns
🎨 Templates
◇ Segments
⚡ Automations
⚙️ Settings

Dashboard

Subscribers
24,891
↑ 12.3%
Sent (30d)
148K
↑ 8.1%
Open Rate
42.3%
↑ 2.4%
Click Rate
8.7%
↑ 1.1%
Campaign
Status
Sent
Open Rate
Clicks
Black Friday Sale
Sent
24,891
42.3%
2,147
Weekly Newsletter #48
Sent
18,204
38.1%
1,432
Holiday Campaign
Scheduled

An engine built
for serious scale

Punchmail isn't a hobby project with a queue bolted on. It's a multi-layered sending engine designed from day one to handle millions of emails without breaking a sweat.

7
Priority queues with dedicated workers
500
Emails per batch, bulk-inserted in parallel
Dedup layers prevent duplicate sends
<1ms
ClickHouse query time on millions of events
🚀

Multi-Queue Architecture

7 priority queues — tracking, sending, campaigns, automations, bounces, imports, default. Each with dedicated workers via Laravel Horizon.

Parallel Batch Processing

Campaigns split into 500-subscriber batches. Multiple workers process batches simultaneously. Template compiled once, cached in Redis, reused across all batches.

📊

ClickHouse Analytics Engine

Every open, click, bounce, and unsubscribe stored in ClickHouse with 6 materialized views for instant aggregation. No more slow MySQL GROUP BY on millions of rows.

🔒

Atomic Send Protection

Redis SETNX locks → MySQL unique index with INSERT IGNORE → job idempotency. Three layers guarantee zero duplicate sends, even during crashes and restarts.

Theoretical throughput
100K+ emails/hour
Scales linearly by adding worker containers

Everything you need. Nothing you don't.

Enterprise email marketing features without the enterprise price tag. Built by someone who's been sending email since before Gmail existed.

🎨

Block-Based Editor

Drag-and-drop email builder with 10 block types. Compiles to bulletproof HTML via MJML. Looks perfect in every client — yes, even Outlook.

🎯

Power Segmentation

Nested AND/OR conditions across subscriber fields, tags, engagement history, and campaign activity. "Opened campaign X but didn't click in 90 days" — milliseconds.

Automation Engine

Trigger-based workflows with conditions, delays, and actions. Welcome series, re-engagement, cart abandonment. Set it and forget it.

🔌

SMTP Pools

Connect any SMTP provider. Create pools with weighted distribution for IP warmup. Automatic failover. Per-campaign throttling. This is what enterprise ESPs charge thousands for.

📊

ClickHouse Analytics

Event tracking powered by ClickHouse. Millions of events, instant queries. Full per-campaign reports and per-subscriber activity timeline.

🧪

A/B Testing

Test subject lines and content with 2-3 variants. Auto-send the winner based on opens or clicks. Data-driven sending.

🛡️

Bounce Intelligence

IMAP/POP3 mailbox polling plus webhook receivers for SES, Postmark, and SendGrid. Automatic hard/soft classification with configurable thresholds.

🚫

Suppression System

Multiple suppression lists with email AND domain blocking. Platform-wide suppression for spamtraps and global unsubscribes. Three-layer dedup prevents duplicate sends.

📬

Full Compliance

RFC 8058 one-click unsubscribe (Gmail/Yahoo required), in-body unsubscribe, and full preference center. List-Unsubscribe headers automatic on every send.

SaaS per-client pricing
kills your margins.

Agency email marketing has a math problem. Every client needs their own subscriber list, campaigns, and often their own sending domain. On SaaS platforms, each client means another subscription or a higher tier. Managing 10 clients on Mailchimp can cost $500-2,000+/month depending on list sizes. That eats directly into your margins.

Some agencies create separate accounts per client, which means separate logins, separate billing, and no unified management. Others use a single account with multiple audiences, which creates messy data separation and limits what you can do per client. Neither solution is designed for how agencies actually work.

With Punchmail, you run one self-hosted instance with unlimited lists and segments. Each client gets their own lists, templates, and campaigns. You configure separate sending domains and SMTP providers per client using SMTP pools. There's no per-client fee, no subscriber tier pricing, and no artificial limits.

For agencies with technical capacity, you can even run multiple Punchmail instances — one per client — on the same server using Docker. Each instance is fully isolated with its own database and analytics. The per-client infrastructure cost drops to almost nothing, and your margins stay healthy.

💼

No Per-Client Fees

One Punchmail license. Unlimited lists for unlimited clients. Your only cost is the server and SMTP sending.

🔌

Per-Client SMTP

Configure separate SMTP providers and sending domains per client using SMTP pools. Each client's reputation is isolated.

📊

Client-Level Analytics

Per-list and per-campaign analytics powered by ClickHouse. Generate client reports with real-time data.

🔒

Data Isolation

Separate lists ensure client data stays separate. For full isolation, run multiple instances on one server.

How Punchmail stacks up

We're not competing with Mailchimp's marketing budget. We're competing with their feature set.

Punchmail Mailchimp ActiveCampaign Mautic
No per-client pricing
Unlimited lists Paid tiers Paid tiers
Per-client SMTP
Self-hosted
Block email editor Basic
Automation per client
ClickHouse analytics
A/B testing Basic
Client data isolation Audiences Tags
Cost for 10 clients €29 total $1,000+/mo $800+/mo Free

Frequently Asked Questions

Can I manage multiple clients from one Punchmail instance?

+
Yes. Create separate lists for each client with their own subscribers, campaigns, and automation workflows. Use SMTP pools to configure per-client sending domains and SMTP providers. One instance handles everything.

How do I keep client data separate?

+
Each client gets their own subscriber lists and campaigns. For agencies needing strict isolation (separate databases), run multiple Punchmail Docker instances on one server, each with its own database and analytics. Both approaches work at €49 total.

Can I white-label Punchmail for my clients?

+
Since you own the source code, you can customize the branding, UI, and email templates. For agencies that give clients dashboard access, you can modify the interface to match your brand.

How does per-client SMTP work?

+
Create SMTP pools with different providers and assign them per campaign or per list. Client A can send through their own SES account while Client B uses Postmark. Each client's sending reputation remains independent.

What's the best server setup for an agency?

+
A single server with 4+ cores and 16GB RAM can handle multiple clients with tens of thousands of subscribers each. For larger agencies, dedicated servers or a small cluster with separate ClickHouse and Redis instances provides more headroom.

Up and running in 60 seconds

No PhD required. If you can copy-paste three commands, you can run Punchmail.

1

Clone & configure

Clone the repo, copy the environment file, set your admin credentials.

git clone https://github.com/punchmail/punchmail && cp .env.example .env
2

Launch

One command spins up all 7 containers — app, database, analytics, queue, cache, email renderer. Done.

docker compose up -d
3

Connect your SMTP

Add your SMTP provider in settings — Amazon SES, Postmark, your own Postfix, whatever. Create pools, set weights, configure failover.

4

Start sending

Import subscribers, build your first campaign with the block editor, hit send. Welcome to email freedom.

One price. No limits. Forever.

No subscriber tiers. No send limits. No "contact sales." Just a price that makes sense.

Lifetime License
€199
49
One-time payment. Not per month. Not per year. Once.

🚀 Launch price for the first 100 customers. Then €99.

We manage email marketing for 12 clients. On Mailchimp, that cost us $1,400/month. On Punchmail, it's €49 once plus a $40/month Hetzner server. Our margins went from thin to thick.

Bram, Creator of Punchmail & email deliverability veteran

Stop renting.
Start owning.

Your subscribers. Your data. Your server. One price, forever.

Get Punchmail → See How It Works