deploy · tutorial · mobile

Resend Emails That Land: Magic Links + Receipts

Auth links, receipts, and notifications from one Resend setup: verified domain, plain-text-first, per-type addresses. Deliverability inside.

Men running with mail sacks toward biplanes outside the Reno, Nevada aerial mail hangar, around 1920
Men running with mail sacks toward biplanes outside the Reno, Nevada aerial mail hangar, around 1920 · Photo: Smithsonian Institution, no known restrictions, via Wikimedia Commons

Picture launch week.

Users request magic links that arrive in spam, after they expire. Receipts never send, because no template exists. Password-reset emails share a marketing address that Gmail already flagged from the launch announcement.

Three email jobs. Zero working. One frazzled founder hand-copying login links from server logs at midnight.

Email felt done, because the Resend account was created months ago. Every actual send failed differently.

Setup is not sending. An account is not infrastructure.

Email jobs and email failures

Email job Failure mode User impact
Magic-link login Spam folder, expired on arrival Can't log in
Purchase receipt Never sent, no template Chargebacks: "what is this?"
Refund notice A poisoned shared address Missed, disputed
Notifications Marketing-shared reputation Throttled with promos
Support replies A no-reply address Rage, shouted into a void

Email fails silently. Three reasons.

Deliverability is invisible until it is catastrophic. No dashboard screams "spam folder". Placement decays quietly, and login complaints trickle in one at a time.

Shared reputations cross-contaminate. A flagged launch announcement poisons the address magic links share. Mixing streams mixes fates.

Missing templates surface at money moments. Receipts don't exist until the first chargeback asks "what did I buy?"

Unsent mail is unbuilt product wearing a TODO.

What to do

Verify the domain fully before sending anything.

In your Resend dashboard, add your domain and publish the three records it gives you: SPF, DKIM and DMARC.

Wait for all three to show as verified before the first sign-in email goes out. Unverified sending trains spam filters against your domain from day one.

Start DMARC at a gentle policy. Tighten it after a clean month. Read the weekly reports.

Separate addresses by job.

One for sign-in links only. One for money, like purchases and refunds. One for humans and marketing.

Streams that never share an address never share a reputation. Support replies come from a real mailbox, because a no-reply address invites rage and has nowhere to put it.

Template plain-text first, per job.

A sign-in email needs four things: what it is, the link, how long it lasts and what to do if you did not ask. A receipt needs the amount, the product, the date and a support line. A notification needs one idea and one link.

Plain text renders everywhere and gives spam filters little to object to.

Keep transactional mail transactional. Newsletters disguised as receipts cost you the deliverability edge that makes receipts work.

The email ledger

Send Before, an account with no discipline After, verified and separated
Sign-in link placement Spam, expired on arrival Inbox
Receipts None, written mid-dispute A template you wrote on purpose
Marketing and auth A shared reputation Isolated streams
Support replies A no-reply void A mailbox that answers
Monitoring None Weekly reports and test sends

Three addresses, DNS and monitoring take about an afternoon. A few minutes a week after that.

Set against hand-copying login links at midnight, chargeback losses and login tickets, that is revenue infrastructure wearing boring clothes.

What the kit does not do

BoringPush builds no receipt template for you today. It runs no bounce or complaint handling.

If you want receipts or suppression lists, build them on top of the sending helper. Check your provider's dashboard for bounces and complaints, and stop mailing addresses that bounce.

Know this first

BoringPush builds no receipt template and no bounce handling. Your domain setup and monitoring are yours.

Check your provider's dashboard.

Why BoringPush is the way to do this

Email that lands.

BoringPush sends through Resend with a ready sender and a branded sign-in email. Verify your domain once.

The rest stays out of your way.

FAQ

How do transactional emails differ from marketing sends?

Reputation stakes and rules. Transactional mail is expected and triggered, so it enjoys better placement.

Bulk mail faces the promotions tab and unsubscribe law. Never mix the streams, and never disguise bulk as transactional.

Should transactional templates match the brand closely?

Lightly: a logo, a brand color, readable type. Then plain structure, because complex layouts break across email clients. Receipts especially should be clear first, with the amount scannable and the support path obvious.

What about deliverability outside the US?

Same authentication records everywhere, plus regional awareness. Some providers filter aggressively, so send test messages to accounts in the regions your buyers live in. Plain text renders the same across all of them.

How do I handle bounces and complaints?

Watch them in your provider's dashboard and stop mailing hard bounces right away. Complaints are a signal to review what annoyed recipients. The kit does not automate suppression, so it is a habit to build.

Can agents write email templates safely?

Structure yes, copy with review. Agents scaffold templates well, while a human approves the tone and every claim. Emails speak as the company, so read every word.

When do dedicated IPs earn their keep?

At high, steady volume with someone watching reputation. Below that, shared pools usually perform better. A solo scale with pristine practices beats a dedicated IP with neglect.

Keep reading

+ all the boring stuff (analytics, auth, SQLite ↔ Supabase, full marketplace, webhooks)

The Agent-First Shipping Kit

Command from your phone.

Built so autonomous AI agents build what you want without breaking what's already paying you.

$199

Get BoringPush

One-time payment · Lifetime updates · Unlimited projects.

Keep reading