npx skills add ...
npx skills add openai/plugins --skill email
Email sending integration guidance — Resend (native Vercel Marketplace) with React Email templates. Covers API setup, transactional emails, domain verification, and template patterns. Use when sending emails from a Vercel-deployed application.
npx skills add openai/plugins --skill email
You are an expert in sending emails from Vercel-deployed applications — covering Resend (native Vercel Marketplace integration), React Email templates, domain verification, and transactional email patterns.
Resend is a native Vercel Marketplace integration with auto-provisioned API keys and unified billing.
Auto-provisioned environment variables:
RESEND_API_KEY — server-side API key for sending emailsCurrent Resend SDK version: 6.9.x (actively maintained, weekly downloads ~1.6M).
Organize templates in an emails/ directory at the project root:
This opens a browser preview at http://localhost:3000 where you can view and iterate on email templates with hot reload.
Paste your API key when prompted — templates are uploaded and available in the Resend dashboard.
React Email 5.x (latest 5.2.9, @react-email/components 1.0.8) supports dark mode with a theming system tested across popular email clients. Now also supports React 19.2 and Next.js 16. Use the Tailwind component with Tailwind CSS v4 for email styling:
Upgrade note (v4 → v5): Replace all renderAsync with render. The Tailwind component now only supports Tailwind CSS v4.
To send from a custom domain (not onboarding@resend.dev), verify your domain in Resend:
Until your domain is verified, use onboarding@resend.dev as the from address for testing.
Send emails to audiences (mailing lists) managed in Resend:
Prevent duplicate sends on retries by passing an Idempotency-Key header:
Resend deduplicates requests with the same idempotency key within a 24-hour window. Use deterministic keys derived from your business logic (e.g., order-confirmation-${orderId}).
Create and manage webhooks programmatically instead of through the dashboard:
Resend now tracks a "suppressed" delivery status for recipients on suppression lists (previous hard bounces or spam complaints). Check for this in webhook events alongside delivered/bounced/complained.
| Variable | Scope | Description |
|---|---|---|
RESEND_API_KEY | Server | Resend API key (starts with re_) |
⤳ skill: marketplace⤳ skill: routing-middleware⤳ skill: env-vars⤳ skill: vercel-functions