> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shoppex.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Send Buyer Emails From Your Own Resend Account

> Send order, delivery and subscription emails from your own domain through Resend, and what happens when Resend refuses them.

By default Shoppex sends the emails your buyers get from your store from its own address. With a [Resend](https://resend.com) account you can send them from your own domain instead, for example `orders@yourstore.com`. Set it up under **Storefront → Buyer Emails → Sending** (`/store/emails/sending`). You need the General settings permission.

## What goes through Resend

Order, payment, delivery, refund, gift, subscription, license, warranty, reseller, review, support reply, abandoned cart and back-in-stock emails, plus the copies sent to you about new orders. These stay with Shoppex:

* the buyer **Sign-in Code**,
* emails of a store that Shoppex suspended,
* your own Shoppex account emails (sign-in alerts, billing, plan reminders).

## Connect Resend

1. In Resend, add your domain under **Domains** and finish the DNS setup until Resend shows it as verified.
2. Create an API key under **API Keys**. A **Full access** key lets Shoppex check your domain when you save. A **Sending access** key works too, but Shoppex cannot check the domain with it: send a test email after saving.
3. On **Sending**, paste the key and enter the **From Email**. Its domain must be the exact domain you verified: a verified `yourstore.com` does not cover `mail.yourstore.com`.
4. Optional: a **From Name** (empty: your store name) and a **Reply-To** address for buyer replies.
5. Click **Connect Resend**.

When you save, Shoppex asks Resend whether the key works and whether the From domain is in your account and verified for sending. A domain Resend shows as partially verified passes only when its SPF and DKIM records are verified. A save that fails these checks stores nothing and tells you why, for example `Invalid Resend API key.` or `yourstore.com is not verified in Resend yet (status: pending)`.

**Send Test Email** sends one email through your key and sender to the email address of your Shoppex account. If Resend refuses it, you see Resend's reason. Your store can send 5 test emails per hour, counted together with the test emails of the email editor, so repeated clicks do not use up your Resend quota.

**Turn Off** sends buyer emails from Shoppex's address again. Your key stays saved; **Turn On** checks it with Resend again and switches back.

## Delivery events (optional)

Resend can tell Shoppex which emails were delivered, bounced or marked as spam:

1. Copy the **Webhook URL** from **Sending**.
2. In Resend, add a webhook with that URL and the email events (`email.delivered`, `email.bounced`, `email.complained`).
3. Paste the webhook's **Signing Secret** into **Sending** and save.

## When Resend refuses your emails

If Resend refuses your account rather than one email (a revoked or suspended key, a domain that is no longer verified, a used-up daily or monthly quota, or a key Shoppex can no longer read), every buyer email would fail the same way. Shoppex never moves your emails to its own address on its own. Instead:

* **Sending** and the **Buyer Emails** page show that Resend is refusing your emails, since when, and Resend's reason.
* You get one notification in the dashboard when the refusals start, not one per email.
* What happens to the emails depends on **Let Shoppex Send Meanwhile**:

| Let Shoppex Send Meanwhile | What happens to refused emails |
| - | - |
| Off (default) | They wait and retry through Resend every 30 minutes, for up to 7 days after they were queued. Fix the problem in Resend and they go out on their next retry. After 7 days they get 5 last retries over about 15 hours, then they stop. |
| On | They go out from Shoppex's address about a minute later, and so does every following email, until Resend works again. |

When emails stop after their last retry, your buyers did not get them. You get one dashboard notification for the refusal period, for example **3 buyer emails could not be delivered**. Later emails that stop in the same period update the number in that notification instead of sending a new one.

Resend works again, and the warning goes away, when Resend accepts one of your emails, when a **Send Test Email** goes through, or when you save **Sending** and the checks pass. With **Let Shoppex Send Meanwhile** on, Shoppex no longer tries Resend by itself: send a test email or save once you fixed it. **Turn Off** also ends the warning and sends the waiting emails from Shoppex's address.

A short Resend outage, a rate limit, or a refusal of one single email (for example an invalid buyer address) does not count as a refusal of your account. Those emails retry on the normal schedule: after 1 minute, 5 minutes, 30 minutes, 2 hours and 12 hours.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.