Postmark Inbound alternative

The Postmark Inbound alternative
that never keeps your email.

Postmark is a great sending service, and its inbound processing is solid. GhostParse is built around the email that comes in: it starts free, bills only for what you process, signs every webhook, and doesn't store a single message.

What you get

Inbound email, done properly.

Starts free

1,000 emails a month on the free plan, then pay as you go: £0 a month and £1.50 per 1,000 emails, so a quiet month costs nothing.

Signed, typed JSON

Every webhook is signed (Standard Webhooks), and every field is always there: null when the email doesn't have it.

The reply, not the thread

reply_text is what the person actually wrote, with the quoted history and signatures removed.

Is the sender real?

SPF, DKIM and DMARC are checked for every email, with one verdict to trust, plus spam and virus checks.

Never stored

Email is parsed in memory and delivered. We keep a short log of metadata, never the message.

Fields, not just text

Pull order numbers, totals and tracking codes out of email with rules or AI, from ready-made parsers or your own.

Route it anywhere

Routing rules send email to your webhook, Slack, Microsoft Teams, Google Sheets, Make or n8n, with up to 100 rules on every plan.

Test on localhost

The CLI streams real email to your laptop, and simulate fires signed test webhooks offline, before you even have a domain.

Attachments to your bucket

Files can go straight to your own S3, R2, B2 or Google Cloud bucket, with download links in the webhook instead of base64.

About Postmark

What to know about Postmark Inbound.

From Postmark's public pages and documentation, October 2026. Plans and prices change: check Postmark's site for the latest.

Where inbound is available
Postmark lists inbound processing on its Pro and Platform plans (Pro from $16.50 a month for 10,000 emails, as listed in October 2026), not on Basic.
Payload
Postmark posts each inbound email to your webhook as JSON, with the reply text and attachments included.
Switching

Move over in an afternoon.

01

Add your domain

Create a free account, add the domain (or a subdomain), and add the DNS records the dashboard shows you, automatically if you use Cloudflare.

02

Test locally first

Run npx @wildye/email-parser-cli simulate http://localhost:3000/your-endpoint to see the exact payload your code will get, signed, before any mail moves.

03

Switch the MX

Point the domain's MX record at us instead of Postmark's inbound server, or start with a subdomain such as inbound.yourapp.com so nothing changes for your main mailbox.

Field by field

Where each Postmark Inbound field is in our webhook payload.

Postmark InboundGhostParse
FromFull.Email / FromFull.Namedata.from.address / data.from.name
ToFull[].Emaildata.to[].address (and data.recipients[] for your own addresses)
Subjectdata.subject
TextBody / HtmlBodydata.text / data.html
StrippedTextReplydata.reply_text
Headers → Message-IDdata.message_id (headers are also in data.headers)
Attachments[].Name / ContentType / ContentLengthdata.attachments[].filename / content_type / size
Attachments[].Contentdata.attachments[].content (base64), or multipart parts: your choice
Questions

Before you switch.

Can I keep sending with Postmark?

Yes. Receiving and sending are separate: move only your inbound email (the MX record) and keep sending with Postmark, or send with us too.

Can I try it without moving my main domain?

Yes. Use a subdomain such as inbound.yourapp.com, or your account's instant inbox address, which needs no DNS at all. Your main mailbox carries on as it is.

How do I check the webhooks are really from you?

Each webhook carries a webhook-signature header (Standard Webhooks, HMAC-SHA256). Our SDKs for Node.js, Python, PHP, Ruby and Go verify it in one line.

Do you store the emails?

No. Email is parsed in memory and delivered to you; we keep a short log of metadata (who, when, what happened), never the message itself. How we handle data.

Try it on a subdomain today.

Also compared: Mailgun Routes · SendGrid Inbound Parse.