Migrate · Postmark
From Postmark to Oveyon, by reading.
Paste the key. The import copies suppressions, domains and the event webhook over here; nothing changes at Postmark. Then you point your application, domain by domain — and roll back if you want.
No card · Domain live in minutes · The free plan never expires
01 · Three steps
Get started in three steps.
Grab the two tokens
At Postmark, copy the Account Token (for domains) and the Server Token of the server that sends your transactional mail (for suppressions and webhooks). The import only reads with them: every call is a GET.
Paste it in the panel and follow along
Under Sending → Migration, pick the provider and paste the key. The import reads page by page and shows, read by read, what was read, what came in and what was skipped, with the cause. Repeating duplicates nothing.
Point, domain by domain
Publish the DNS the panel generates, swap host and credential in your application and turn on the domain switch on the Migration screen: it arms the warmup ramp and records the date. Turning it off undoes our side; what came in stays.
02 · The credential
What the import asks for.
The two Postmark tokens: the Account Token, for domains, and the Server Token, for suppressions and webhooks. The import only reads with them — every call is a GET, from a catalog frozen in code. Give only the account token and it brings the domains and says, by name, that suppressions and webhooks were left behind.
03 · What we read there
Read by read, what becomes what.
| Read | What it becomes here | Access |
|---|---|---|
| Suppressions of the «outbound» stream (full dump) | suppressions with the equivalent reason; a reason with no equivalent comes in as manual | READ |
| Account domains | a sending domain here, with its own DKIM key generated — waiting for your DNS | READ |
| Server webhooks | an event endpoint here, with a new secret and HMAC-SHA256 signatures | READ |
Cap of 250,000 suppressions per import — the excess shows as skipped in the report, it does not vanish in silence. A reason with no equivalent comes in as manual, never as complaint.
04 · What we do not read
And what stays with you.
- Suppressions from the other message streams — only «outbound» (transactional) is read.
- Sender signatures (individual senders) — here sending is per verified domain.
- Templates — recreate them with POST /v1/templates.
05 · On arrival
What is different here.
Your own DKIM per domain
Each domain is born with its own key, generated here, and the wizard checks the DNS live on every visit. SPF, DKIM, DMARC, MTA-STS, TLS-RPT and ARF out of the box.
A complaint can never be deleted
Not from the panel, not through the API, not by deleting the domain and re-adding it. Your list leaves here whole, whenever you want.
A ramp that counts days you sent
A new domain climbs in steps of effective days — not calendar days. Rolling back does not reset what you really built.
A record ready for audit
Who did it, when, what changed — including when the “who” was our support. A trail without purge, visible under Account → History.
Other sources
Coming from somewhere else?
SendGrid · Mailgun · Amazon SES · Brevo · Any SMTP server · All sources