Resend email preview and QA
Resend delivers the HTML you give it. This shows what Outlook, Gmail and Apple Mail will do with that HTML before it goes out.
Resend URL import is being tested and is coming soon. We have not yet imported a live Resend campaign end to end, so this page does not claim it works, and it will say verified only once one has. Paste the HTML in the meantime: every check here works exactly the same either way. We would rather say untested than assume, because the documentation for one platform on this page read perfectly well and its URL turned out to be a login screen.
Setting it up
- 1
Get the campaign's browser link
Most ESPs put a view-in-browser link in the email itself, and that page is the HTML that was actually sent. Send yourself a test, open it, and copy that link. How each platform produces one differs, so see the note below.
On Resend: Resend's documentation describes no view-in-browser page for Broadcasts or for transactional email, so there is no link to import. Paste the HTML instead, or lint the source where it lives: a React Email project with the CLI, or the HTML you pass to the API.
Resend's own pre-send checks are a Review step in the Broadcast editor, which looks for errors and common mistakes, and a test email, which shows the Broadcast in your own inbox. That inbox is one client of the 21 checked here.
Resend: compose and send with the Broadcast editor - 2
Paste it into Emailens
Open New Preview and paste the link into Import from your ESP. We fetch the page and check it across 21 clients, with dark mode, accessibility, size and merge-tag detection.
- 3
Gate the send, if it is automated
POST the same link to /api/gate and get one boolean back. Put it in front of a send in Zapier or CI and a campaign that regressed never goes out. Pro plan.
Unreplaced merge tags
Resend writes variables in triple braces, with an optional fallback after a pipe, and refuses to send a Template whose variable has neither a value nor a fallback. Checked before Resend fills them in, the engine reports each one as unresolved, because at that point it is: pass --skip templateVariables to the CLI for source files, or check the test email. A tag left unresolved ships to the recipient
literally, in body text and in href, src and alt attributes, where it is hardest
to spot in review.
{{{contact.first_name|there}}}
reported as
Handlebars/Mustache Worth knowing
- Resend generates a unique unsubscribe link for each recipient and each Broadcast through {{{RESEND_UNSUBSCRIBE_URL}}}. A marketing email with no unsubscribe link at all is reported as an error.
- Resend Templates can be written in React Email and uploaded with the Resend CLI. Lint the exported HTML in the same pipeline, so a template that breaks Outlook fails the pull request instead of reaching the dashboard.
Before you send
A preview tells you what is wrong. The pre-send gate answers one boolean, so a Resend campaign that regressed against the last version you approved never goes out. Put it behind a Zapier filter or a CI step.
Other platforms
Check a Resend campaign
21 inbox clients, dark mode, and merge-tag detection. Free tier, no credit card.
Get Started Free