One domain.Three kinds of email.One reputation.
Your team's mailboxes, your app's transactional email and your marketing campaigns — with the deliverability engineering already done.
- #Mailboxes
- #Transactional-API
- #Campaigns
- #Deliverability
3,000 recipients a month free, forever. No card. The builder needs no account at all.
EU region by default
A business with a domain needs three unrelated things and today buys them from three vendors. Here they are on one bill, one dashboard, one DNS setup — and, critically, three isolated reputations.
Mailboxes
Real IMAP and SMTP mailboxes on your own domain. Outlook, Apple Mail, Thunderbird, the phone in your pocket.
- #IMAP
- #SMTP
- #Autodiscover
- #Migration
Transactional API
A REST API and an SMTP relay for the email your app sends. Idempotent, test mode, webhooks that do not lie.
- #REST
- #Idempotency
- #Webhooks
- #Test-mode
Campaigns
Segments, a drag-and-drop builder, and a pacing controller that slows a send before a receiver does it for you.
- #Segments
- #Builder
- #Pacing
- #Preflight
Accept fast. Send async. Never lie about it.
The API never blocks on an upstream provider. It validates cheaply, persists the message and the queue job in one database transaction, and returns — target p99 under 150 ms.
One transaction, no orphans
The message row and the queue job are inserted together. There is no window where a message exists without a job, or a job without a message.
An honest delivery guarantee
At-most-once per idempotency key at accept. At-least-once at the provider boundary. Effectively-once for campaigns. We document the real guarantee, not a marketing claim.
Test mode that behaves
Test keys accept identical requests, consume no quota, need no verified domain, and emit fully simulated webhook events on a realistic delay curve.
import { MailHaap } from "@mailhaap/node";
const mh = new MailHaap(process.env.MAILHAAP_API_KEY);
const { id } = await mh.emails.send({
from: "Kadıköy Property <[email protected]>",
to: "[email protected]",
subject: "Order A-1043 confirmed",
html: "<p>Hello {{ first_name }}</p>",
tags: [{ name: "category", value: "order_confirmation" }],
});
console.log(id); // msg_01J8XQ7M2K9PQRSTUVNinety templates. Fifteen sectors. No paywall.
Browse all 90Every one ships with light and dark variants, a filled sample-data set, a suggested subject line and preheader, a matching plaintext version, and a note on when to use it.
New listing
A property has just come to market and your buyer list should see it first.
Order confirmation
The single most-opened email you will ever send. Get it right.
Booking confirmation
The reservation is made and the guest needs the details in writing.
Appointment reminder
The most valuable email a clinic sends: it prevents no-shows.
Feature launch
Something shipped and users should try it.
Invitation
The formal invitation with an RSVP.
The same engine that verifies your domain, pointed at anyone's.
All toolsSPF checker
Check, merge and count the lookups in an SPF record.
Two SPF records is a permerror. Eleven lookups is a permerror. This finds both.
DMARC checker
Read a DMARC policy and get the next rung of the ladder.
p=none is monitoring, not protection. See where you are and what to publish next.
MX lookup
See who actually receives mail for a domain.
Identifies the provider behind the MX hosts, and warns when there is no backup.
Blacklist check
Eight reputation sources, checked in parallel.
Spamhaus SBL, XBL, PBL and DBL, plus Barracuda, SpamCop, SORBS and Invaluement.
Header analyser
Paste raw headers, get the hop timeline and auth results.
Finds where a message was delayed, and which of SPF, DKIM and DMARC actually passed.
No signup. No modal. No email gate. Every tool answers in under 300 ms and explains the result underneath.
Our thresholds trigger before anyone else's do.
Providers begin review around a 5% bounce rate and pause sending around 10%. We never let a workspace get close: we flag at 2%, throttle at 3%, and stop the offending plane at 4% — that plane only, never the others.
How reputation scoring works →| State | Bounce | Complaint | Action |
|---|---|---|---|
| Healthy | < 2.0% | < 0.05% | None |
| Watch | 2.0–3.0% | 0.05–0.08% | Dashboard notice |
| Throttle | 3.0–4.0% | 0.08–0.09% | Rate cut to 30% |
| Pause | ≥ 4.0% | ≥ 0.09% | Stop the plane |
| Emergency | ≥ 8.0% | ≥ 0.3% | Freeze, escalate |
Two meters, because storage and volume are different problems.
Mailbox plans · per mailbox / month
- Starter10 GB€2.99
- Standard25 GB€4.99
- Pro50 GB€6.99
Sending plans · per workspace / month
- Free3,000 / mo€0
- Growth50,000€19
- Scale250,000€69
- Business1,000,000€199
A dedicated IP is a €25/month add-on and we only offer it above 250,000 messages a month. Below that volume a dedicated IP receives too little traffic to build reputation and performs worse than the shared pool. We would rather say that than sell it to you.
Questions people actually ask
- Because they share one thing that decides whether any of them work: your domain's reputation. Today you buy them from three vendors with three DNS setups that fight each other — SPF lookup limits, conflicting DMARC alignment — and no single view of how your domain is doing. One platform means one DNS setup, one suppression policy and one reputation view. The three sending planes stay isolated from each other so a purchased-list campaign can never stop your password resets.