Every layer, built to protect delivery.

Not a feature checklist bolted onto a shared relay - a mail server built from the ground up, where authentication, reputation, and visibility are the actual architecture.

A delivery engine built for speed and reliability

ZeroHop MTA connects directly to your recipient's mail server for every send - no third-party relay sitting between you and the inbox.

  • Direct-to-MX delivery, not relay-based
  • In-flight DKIM signing on your own domain key
  • Connection pooling for real sending throughput
  • Instant delivery-failure feedback, not a nightly report
resolving MX record…
pooling connection…
TLS negotiated…
signing with DKIM…
delivered in 340ms…
connection kept alive for reuse…

Domain authentication, without the manual checklist

SPF, DKIM, and DMARC are non-negotiable for real deliverability. The setup wizard generates everything and verifies it against real DNS - not a guess.

  • Automatic DKIM key generation
  • SPF, DKIM, and DMARC records generated for you
  • One-click, real DNS verification
  • Optional automatic setup via Cloudflare
generating DKIM key (2048-bit)…
checking SPF…
checking DKIM…
checking DMARC…
syncing to Cloudflare…
all records verified…

IP reputation, tracked and protected automatically

Every IP in your pool is scored independently. New IPs warm up on a schedule; abusive patterns get suspended before they damage your sender reputation.

  • Per-IP reputation scoring and history
  • Automatic warm-up scheduling for new IPs
  • Abuse-based auto-suspension
  • Nothing shared with any other customer
192.0.2.10reputation 98
192.0.2.11reputation 96
192.0.2.12reputation 99
192.0.2.13reputation 94
192.0.2.14warming up…
192.0.2.15warming up…

Bounces and complaints, handled in real time

Delivery failures feed directly into reputation protection the moment they happen - not discovered hours later when the damage is already done.

  • Real-time bounce detection and classification
  • Spam complaint tracking
  • Automatic feed into IP reputation scoring
  • No manual log-checking required

A real campaign dashboard, not a bare command line

Lists, templates, scheduled sending, and a live sending console - everything in one place, built for people who need to actually manage campaigns, not just trigger sends.

  • Lists, templates, and scheduled sends in one place
  • Real-time sending console
  • Built-in HTML template editor
delivered98%
opened61%
clicked24%
bounced2%

A real inbox, not just a way to send

ZeroHop MTA receives mail natively on your own domain. Reply, forward, and see authentication status directly in your dashboard.

  • Native inbound mail receiving on your own domain
  • Reply and forward directly from your dashboard
  • SPF/DKIM verification shown on every received message

Full control of your server, no ticket required

Reboot or shut down your dedicated server directly from your dashboard - securely authenticated and audit-logged, not buried behind support.

  • Reboot or shut down from your dashboard
  • No support ticket required for basic control
  • Securely authenticated, audit-logged power actions
reboot requested…
token authenticated…
reboot scheduled…
executing in 60s…
server back online…

Billing that runs itself

Automatic monthly renewal, real invoices, and reminder emails before every charge - not something you have to remember to manage.

  • Automatic monthly renewal via PayPal
  • Real invoices, generated and downloadable
  • Reminder emails before every renewal
checking payment method…
charge processed…
invoice generated…
license renewed…
confirmation emailed…

Unsubscribe handling, built in from day one

Every email includes a working unsubscribe link. Opt-outs are removed from future sends automatically - not a manual list-cleaning chore.

  • Unsubscribe link on every campaign, automatically
  • Opt-outs excluded from all future sends
  • No manual list maintenance required
unsubscribe link added…
opt-out received…
subscriber status updated…
excluded from future sends…

Schedule it, walk away

Set a campaign to send at the right moment instead of sitting at your desk waiting to hit send.

  • Send immediately or schedule for later
  • Automatic dispatch at the scheduled time
  • No manual trigger required
campaign scheduled…
queued for 9:00 AM…
sweep triggered dispatch…
sent automatically…

Build once, send many times

Save a campaign as a reusable template instead of starting from a blank editor every time.

  • Save any campaign as a template
  • Reuse across future campaigns
  • No rebuilding from scratch
template saved…
reused for campaign #2…
reused for campaign #3…
no rebuild required…

See exactly where your opens come from

Real breakdown by device and email client, built from actual tracking data - not an estimate.

  • Opens broken down by mail client
  • Desktop vs. mobile vs. tablet visibility
  • Built from real tracking data, not estimates
Gmail42%
Outlook28%
Apple Mail19%
mobile55%

A/B testing that picks the winner for you

Send two variants to a sample of your list, and the system automatically sends whichever performed better - by clicks, with opens as the tiebreaker - to everyone else.

  • Test subject lines or full content, variant A vs. B
  • Sent to a sample first, winner decided automatically
  • Ranked by clicks, ties broken by opens
  • Remaining list gets the winning variant automatically
variant A → sample sent…
variant B → sample sent…
waiting for engagement…
variant B leads on clicks…
winner sent to remaining list…

Send to the right people, not just everyone

Narrow a campaign beyond "everyone on this list" - by a custom field, or by how someone engaged with a past campaign.

  • Filter by any custom field (plan, region, anything you track)
  • Filter by engagement with a past campaign
  • Target people who opened, clicked, or didn't engage
  • Combine filters for precise targeting
field: plan = pro…
engagement: opened last campaign…
1,842 of 6,200 matched…

Set it up once, let it run

Trigger-based automations that enroll subscribers and send on their behalf, without you starting a campaign by hand every time.

  • Trigger-based enrollment, not manual sending
  • Runs continuously in the background
  • Managed from its own dedicated dashboard section
subscriber enrolled…
automation running…
sent automatically…

Beyond {{first_name}} - real, structured personalization

Merge tags for anything you track, plus auto-generated system tags like invoice IDs and barcodes - built directly into the send, not bolted on with a plugin.

  • Custom merge tags from any subscriber field
  • Auto-generated invoice IDs per recipient
  • Auto-generated barcodes, embedded directly in the email
  • Personalized subject lines, not just body content
{{first_name}} → resolved…
invoice ID generated…
barcode rendered…
ready to send…

Transactional email via REST API

Send password resets, order confirmations, and alerts from your application — using the same private infrastructure as your campaigns. No shared relay, no rate-limit surprises.

  • Simple POST request, delivered in milliseconds
  • DKIM-signed on your own domain key
  • Per-key rate limits and daily caps
  • Full delivery log for every message
POST /api/v1/send…
API key verified…
DKIM signed…
delivered in 280ms…
logged to dashboard…

Webhooks — your system reacts in real time

Every open, click, bounce, and unsubscribe fires a POST to your endpoint the moment it happens. No polling. No lag. Your CRM or automation platform stays in sync automatically.

  • Fires on opens, clicks, bounces, unsubscribes
  • JSON payload delivered in real time
  • Configurable per campaign or globally
  • Delivery log with retry visibility

Live activity feed — watch your campaign in real time

See every open and click as it happens, timestamped and attributed to the recipient. Not a summary refreshed hourly — a live stream of exactly what is happening right now.

  • Real-time stream of opens and clicks
  • Every event attributed to the recipient
  • Timestamped to the second
  • Up to 10,000 events per campaign

Geographic breakdown — see where your audience is

Every open is resolved to a country using real GeoIP data. See at a glance which markets are engaging and which are not.

  • Country-level breakdown on every campaign
  • Powered by real GeoIP, not estimates
  • Sorted by engagement volume
  • Visible alongside device and client data
United States93%
Mexico7%
Canada4%
United Kingdom2%

Pause, resume, or stop — mid-send

Something looks wrong halfway through a 10,000-email send? Pause it instantly. Fix the issue. Resume exactly where it left off. No messages lost, no duplicates.

  • Pause a live campaign with one click
  • Resume from where it stopped — no duplicates
  • Stop permanently and archive at any time
  • Queued emails held safely during pause
sending: 4,821 / 10,000…
paused — queue held safely…
issue fixed…
resumed from 4,821…
no duplicates sent…

Multiple sending domains — one server, many brands

Add unlimited sending domains to a single installation. Each domain gets its own DKIM key, IP pool, warm-up schedule, and EHLO hostname — completely isolated.

  • Unlimited domains per installation
  • Each domain has its own DKIM key and IP pool
  • Per-domain EHLO hostname for clean PTR matching
  • Domain-level reputation completely isolated
brand-a.comDKIM ✓ SPF ✓
brand-b.comDKIM ✓ SPF ✓
brand-c.comwarming up…
newsletter.ioDKIM ✓ SPF ✓

Suppression list — global opt-out management

Any address that hard-bounces, complains, or unsubscribes is added to the suppression list automatically. They will never be emailed again — across any campaign, on any domain.

  • Automatic suppression on hard bounce or complaint
  • Applies globally across all campaigns and domains
  • Manual add or bulk import via CSV
  • Exportable for cross-platform compliance
hard bounce detected…
address suppressed globally…
skipped in next campaign…
skipped in all future sends…

Audit log — a full trail of every action

Every campaign send, pause, stop, API key creation, and domain change is recorded with a timestamp and actor. Accountability built in, not bolted on.

  • Every action logged with timestamp and actor
  • Campaign events: sent, paused, resumed, stopped
  • API key creation and revocation tracked
  • Domain changes and DNS verifications recorded

Spam score checker — know before you send

Run your email through a spam analysis engine before it leaves your server. Catch subject line problems, image-to-text ratio issues, and blacklisted phrases before they damage your reputation.

  • Pre-send spam score analysis
  • Flags subject line and content issues
  • Image-to-text ratio check
  • Run at any time before sending
analysing subject line…
checking content ratio…
checking blacklisted phrases…
spam score: 0.8 / 10 — safe…

Inbound email routing — route replies where they belong

Define rules to route incoming mail to different inboxes, webhooks, or forwarding addresses based on the recipient address or subject. No separate service required.

  • Route by recipient address or subject
  • Forward to external addresses or internal inboxes
  • Trigger a webhook on any inbound message
  • Built into the same server — no separate service
inbound: support@brand.com…
rule matched: forward to CRM…
webhook fired…
stored in inbox…

Subscription forms — grow your list on your site

Generate an embeddable signup form for any list. Paste one line of code into your website — subscribers land directly in your sending list, ready for your next campaign.

  • One embeddable snippet per list
  • Subscribers added directly to your list
  • Customisable fields and confirmation message
  • No third-party form service required
form submitted on your site…
subscriber added to list…
automation enrolled…
welcome email sent…

Domain send limits — protect reputation per recipient domain

Cap how many emails you send to Gmail, Outlook, or Yahoo per day. Avoid tripping spam filters before your reputation is established.

  • Per-recipient-domain daily and hourly caps
  • Respected automatically during send
  • Prevents tripping spam filters during warmup
  • Configurable per domain from your dashboard
gmail.com500 / day
outlook.com200 / day
yahoo.com50 / day
hotmail.com200 / day

Custom tracking domain — your brand in every link

Replace generic tracking URLs with your own subdomain. Every open pixel and click link uses your domain, not a third-party one. Better deliverability, better brand recognition.

  • Your own subdomain in every tracked link
  • No third-party domain in your emails
  • Improves deliverability and trust
  • Set once per sending domain
tracking.yourdomain.com set…
CNAME verified…
links rewritten to your domain…
opens tracked under your brand…

DMARC reports — see who is sending on your behalf

Receive, parse, and display aggregate DMARC reports directly in your dashboard. Spot unauthorised senders and misaligned infrastructure before they damage your domain reputation.

  • Receive and parse aggregate DMARC reports
  • Pass/fail breakdown per sending source
  • Spot unauthorised senders immediately
  • Visible per sending domain in your dashboard
DMARC pass rate100%
SPF aligned98%
DKIM aligned100%

Campaign cloning — reuse what works

Clone any sent or draft campaign in one click. The copy inherits the subject, content, list, and settings — ready to adjust and send again without starting from scratch.

  • Clone any campaign with one click
  • Subject, content, list, and settings all copied
  • Edit and send independently
  • Works on sent, paused, or draft campaigns
cloning campaign…
content copied…
settings inherited…
ready to edit and send…

Per-domain EHLO hostname — clean PTR matching

Every sending domain uses its own EHLO hostname. Your PTR record, EHLO, and from-domain all align — which is exactly what serious mail receivers check for.

  • Custom EHLO hostname per sending domain
  • EHLO aligns with PTR for better deliverability
  • No shared generic hostname leaking your server
  • Configurable from your sending domain settings
zerohopmta.commail.zerohopmta.com
brand-b.commail.brand-b.com
newsletter.iomail.newsletter.io
PTR match✓ verified

Ready to see it running on your own domain?

Real server, real IPs, real MTA - not a shared relay with your name on it.