send-email

Send transactional and batch emails via the Resend API with idempotency and retry handling.

1|Updated Oct 10, 2025
One-click install
npx skills add https://github.com/Rocktown-Labs/rivercitymd --skill send-email-rocktown-labs
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: send-email
Source: https://github.com/Rocktown-Labs/rivercitymd/tree/main/.agents/skills/resend/send-email
Command: npx skills add https://github.com/Rocktown-Labs/rivercitymd --skill send-email-rocktown-labs

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires resend, and includes references (resource) components.

What problem does it solve? Sending transactional emails (welcome messages, order confirmations, password resets, receipts) reliably requires handling idempotency, rate limits, retries, deliverability, and webhook verification—details that are easy to get wrong and costly when they fail. ## Core Features & Use Cases - Single & Batch Sending: Send individual emails with attachments and scheduling, or up to 100 distinct emails per batch request via the Resend API. - Production Best Practices: Built-in guidance for idempotency keys, exponential backoff retries, error-code handling, and pre-send batch validation. - Deliverability & Webhooks: Covers domain warm-up schedules, suppression lists, tracking configuration, and signature-verified webhook handling for delivery events. - Use Case: A developer needs to send order confirmation emails after checkout. The skill provides SDK installation steps, a minimal send call with an idempotency key like order-confirmation/order-456, and retry logic for rate limits. ## Quick Start Ask the AI to send a transactional email with Resend, for example: "Send a welcome email to new users using Resend with an idempotency key."

Frequently Asked Questions about send-email

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I send an email with the Resend API?▼

Install the Resend SDK for your language, set the RESEND_API_KEY environment variable, and call resend.emails.send with from, to, subject, and html or text parameters. Include an idempotency key to prevent duplicate sends on retries.

When should I use Resend batch sending vs single sends?▼

Use the batch endpoint when sending 2 or more distinct emails without attachments or scheduling, up to 100 per request. Use single sends when you need attachments, scheduled delivery, or different timing per recipient.

How do I prevent duplicate emails when retrying failed requests?▼

Pass an idempotency key formatted as <event-type>/<entity-id>, such as welcome-email/user-123. Resend returns the original response for duplicate payloads and a 409 error if the same key is used with a different payload.

Which Resend API errors are safe to retry?▼

Only retry 429 (rate limited) and 500 (server error) responses using exponential backoff. Do not retry 400, 401, 403, 409, or 422 errors—fix the request parameters, API key, or domain verification instead.

How do I verify Resend webhook signatures?▼

Use resend.webhooks.verify with the raw request body, the svix-id, svix-timestamp, and svix-signature headers, and your RESEND_WEBHOOK_SECRET. Always verify signatures, since unverified webhook events cannot be trusted.

What are the limitations of Resend batch emails?▼

Batch sends do not support attachments or scheduled delivery, are limited to 100 emails and 50 recipients per email, and fail atomically—one invalid email fails the entire batch. Validate all emails before sending.