BetaMaShop is in public beta. We improve it continuously, and your feedback shapes what comes next.

Connect Resend

ConnectEnglish· 4 min read· Updated September 01, 2026

How email is resolved in your generated project, what still works with no provider at all, and why MaShop itself cannot send a message.

Connect

Resend sends transactional email. In MaShop, Resend is the recommended email provider of the code you own, not an account you authorize in the workspace.

What MaShop can do with Resend

  • Generates nine ready email templates in your project: order confirmation, receipt, new order for you, order cancelled, refund, shipping update, review request, low stock alert and welcome.
  • Resolves the provider from the environment. An explicit provider setting wins. With none set, a present Resend key means Resend. Anything else is the no operation mailer, which logs and sends nothing.
  • Saves an email draft on request. This is one of the two capabilities that answer today. It writes a draft for you to read.

The catalogue also declares four agent tools: template.render, email.send_transactional, domain.verify and audience.manage. None has an executor yet. None of them is classified critical either: sending an email is not a critical action in this catalogue.

MaShop does not send email

This is the part to read before you plan an automation around it.

An agent can write a draft. Nothing in MaShop sends one. There is no send executor, and signing the draft in your Approvals queue does not create one: the signature closes the card, and no message leaves.

So the honest workflow today is to read the draft, copy it, and send it yourself from your own mailbox.

What does send email is your generated project, on its own, through the provider you configure below. Order confirmations and the rest go out from your site, not from MaShop.

What it touches

  • Your sending domain and its DNS records, at your registrar.
  • The mailboxes of your customers, when your site sends an order email.
  • The sign in of your back office. Magic link and password reset both need an outgoing email, so they appear only when a provider is configured.

Default permissions

ToolLevelDefault state
template.renderRead onlyAllow
email.send_transactionalWrite and editAsk
domain.verifyWrite and editAsk
audience.manageWrite and editAsk

Note that domain.verify is also a Vercel tool name, and a permission is stored under the bare name. One setting covers both.

Connect it

There is no Resend screen in the workspace. The keys go on the hosts of your two sites.

  1. Create an account and an API key at Resend.
  2. Verify your sending domain there, so your mail is not treated as unknown.
  3. Open each of your two Netlify sites, the public one and the back office, then their environment variables.
  4. Add the three variables below on both.
  5. Redeploy so the build picks them up.
EMAIL_PROVIDER=resend
RESEND_API_KEY=
EMAIL_FROM=orders@example.com

MaShop pushes the database variables to your sites at every deploy. It does not push email keys, and it never stores them.

Check that it works

  • Place a test order on your published site and wait for the confirmation email.
  • Open the sign in page of your back office. The magic link option appears only when a provider is configured, so its presence is a working check.
  • The password reset flow sends a real email when a provider is configured, and shows a notice to configure one first when there is none.

Limits

  • Email is an enhancement, never the guaranteed channel. With no provider, checkout still works and orders are still recorded.
  • The in app notification bell of your back office covers every event without any provider at all.
  • The keys live on your hosts. MaShop holds none of them.
  • Four catalogue tools, none executable. The draft capability is separate, and it writes only.

When it breaks

  • No email arrives, but orders are recorded. No provider is configured, so the mailer is the no operation one. Check the provider and key variables on the site, then redeploy.
  • The back office sign in offers no magic link and no reset by email. Same cause. The page hides what it cannot honestly do.
  • Mail lands in spam. The sending domain is not verified at Resend. Verify it there and add the records it gives you.
  • The sender address is refused. The from address must be on a domain you verified.
  • A signed draft never reached anyone. Expected. No route sends it. Copy the draft and send it yourself.

Remove the connection

Delete the three variables from both site environments and redeploy. Your project falls back to the no operation mailer, and keeps working. Then revoke the API key at Resend, which is the step that actually ends the access.

There is nothing to disconnect inside MaShop, because nothing was connected there.

See also

connectresendemailnotificationsenvironment variablesback officecode ownershipnetlifypermissions
Was this page helpful?
Your feedback is anonymous.