Migrate from Postmark.
You already like the deliverability discipline. We borrowed the same approach — per-sender complaint cron, auto-suspend at 0.3%. What's new: typed reply events, native injection scanning, MCP-native distribution, and a self-serve Metered tier (coming soon) that extends past Postmark's "contact sales" gate.
Philosophical alignment
What's the same, what's different.
| Dimension | Postmark | Mails.ai | Notes |
|---|---|---|---|
| Per-sender complaint cron | Yes (Message Streams) | Yes (architectural primitive) | Both auto-suspend bad actors before AWS sees them. Same philosophy. |
| Transactional vs broadcast isolation | Message Streams | Single product (transactional only) | Mails.ai is pure transactional + agent inbox. We don't sell broadcast. |
| Sender reputation tracking | Per-Stream | Per-agent (one identity, many recipients) | Agent-level granularity instead of stream-level. |
| Webhook structure | Inbound Stream → parsed JSON | Typed reply event with intent + entities + injection_score | Mails.ai adds a classifier layer Postmark doesn't have. |
| Dedicated IP | $50/mo per IP (Pro tier) | $50/mo per IP (on request, Scale+) | Same price, same auto-warmup pattern (on request, Scale+). |
| Big-sender pricing | Contact sales | Metered tier (coming soon) extends to any volume, no contact-sales gate | 100% self-serve at any volume once Metered lands. |
Code diff
Send + receive, side by side.
Before — Postmark
// Postmark — send via Server API + Inbound Stream parse
import { ServerClient } from "postmark";
const client = new ServerClient(process.env.POSTMARK_TOKEN);
await client.sendEmail({
From: "sarah@yourcompany.com",
To: "lead@example.com",
Subject: "Demo",
TextBody: "...",
MessageStream: "outbound",
});
// Inbound Stream webhook delivers parsed JSON — but no intent classification.
app.post("/inbound", (req, res) => {
const { From, Subject, TextBody } = req.body;
// Classify intent + extract entities yourself
});After — Mails.ai
// Mails.ai — typed reply event with intent + entities pre-computed
import { mails } from "@mailsai/sdk";
const agent = mails.agent("sarah", { domain: "yourcompany.com" });
await agent.send({ to: "lead@example.com", subject: "Demo", body: "..." });
agent.onReply((event) => {
// event.intent => "schedule_demo"
// event.entities => { date, time }
// event.injection_score => 0.02
});Closed betaBuilt for agents.
Built for agents.
Self-serve at every volume.
Public API opens Q3 2026. Drop ~6 lines into your agent and ship.
npmpnpmbunpip
$ npm install @mailsai/sdkPackages publish with cohort 1 · Q3 2026