Skip to content
cccskills
FreePublished on GitHubEnglish overview

send-with-resend

Prepare and send email with Resend by checking whether the sender domain is verified, testing the message with Resend test addresses, and confirming the full recipient and message details before sending to real inboxes. It also supports scheduled and batch sends.

OriginalShow the original description

Send email through Resend without surprising anyone — check the sending domain first, prove the message on Resend's test addresses, and get the user's confirmation before mail goes to a real inbox. Use when the user asks to send, schedule, or batch-send an email, test a template, or wire Resend sending into a codebase.

ParadevAI/Paradev15,724 stars(GitHub 15,724 + cccskills 0)

Run score Not tested

See how to install

Good for

  • Testing an email template with Resend test addresses
  • Sending or scheduling a confirmed email
  • Setting up Resend sending in an application

Overview

What it does

Before sending with Resend, this skill checks whether the sender's domain is verified and ready. It first sends the same message to Resend test addresses and checks the delivery result. Before sending to real recipients, it presents the sender, recipients, CC, BCC, subject, and body for confirmation, and sets an idempotency key to prevent duplicate sends. It also supports scheduled messages and batch sends that keep recipients from seeing one another. If asked to add sending to an app, it extends the existing Resend sending path.

When it helps

Use it to test an email template, schedule an individual message, or send to multiple people. It can also help add Resend email sending to an existing app. The confirmation step lets the user review the content and recipients before sending, while the idempotency key helps prevent duplicates after retries.

Example requests

  • “Test this announcement email, then send it.”
  • “Schedule this email for next week.”
  • “Add this notification to the existing Resend sending flow in the app.”

Notes

A clear confirmation from the user is required before every send to real recipients. Keep the API key in an environment variable; do not put it in the repository, client-side code, or logs. Send from the server.

This overview was written by AI (OpenAI Codex) from the public SKILL.md. Check the original below for the exact behavior.

Document check

AI checked the SKILL.md for operations that need care and for setup requirements. The score comes only from actually running the skill (hands-on test).

SafetyAre sending data, deleting files, and running commands disclosed?
AGoodEvery real send requires confirmation; key handling and server-only sending are specified.
Easy setupDoes it need few tools or API keys, and are they documented?
BPartly lackingResend and an API key are required; broader installation steps are not given.

Not counted in the score. Rated by AI (OpenAI Codex) as of Oct 30, 2026. Treat it as a guide and read the original before installing.

Disagree? Request a re-evaluation

Tell us which point is wrong and why. No login needed. We will check it against the SKILL.md, redo the evaluation, and show the result here.

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Files included (1)

  • SKILL.md3.4 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

A sent email cannot be taken back

Every other Resend call can be run again. send-email and send-batch-emails put mail in someone's inbox, and nothing undoes that. Treat the send as the last step of a short checklist.

1. Check the sending domain

The from address must be on a domain the account has verified for sending. Run list-domains and find the domain of the from address:

  • verified: send.
  • pending, not_started, failed, or partly verified: do not send. Run get-domain and show the user the DNS records that are not verified yet.
  • Not in the list: the account cannot send from it. Ask which verified domain to use. Do not pick one for the user.

onboarding@resend.dev sends without a domain, but only to the account owner's own address. It is for a first test, not for real recipients.

2. Prove it on a test address first

Before a real recipient, send the same message to Resend's test addresses. Remove cc and bcc, and put only test addresses in to. A real address in any recipient field gets the test email before the user confirms in step 3.

  • delivered@resend.dev: delivered. Add a label for each case, for example delivered+welcome@resend.dev.
  • bounced@resend.dev: a hard bounce.
  • complained@resend.dev: delivered, then marked as spam.
  • suppressed@resend.dev: suppressed as an address that bounced before.

Then run get-email on the result. Its status is the truth: sent means Resend accepted the message, delivered means the receiving server accepted it.

3. Confirm before a real inbox

Show the user the from, to, cc, bcc, subject, and body, and wait for a clear yes. Get this confirmation every time. Approval for an earlier send does not cover this one.

  • Set an idempotencyKey (for example welcome/<user-id>), so a retry after a timeout cannot send the message twice.
  • To send later, set scheduledAt. cancel-email can stop a scheduled email until it is sent, and not after.
  • One message to many people who must not see each other is a batch (send-batch-emails, at most 100 per call), or a broadcast. It is not one email with a long to list.

4. Sending from code

When the user wants their application to send mail, read how the codebase already calls Resend and extend that path. The API key comes from the environment and never goes in the repo, a client bundle, or a log line. Send from the server only.

Anti-patterns

  • Testing on a real person. Use delivered@resend.dev until the message is right.
  • Reading sent as delivered. sent only means that Resend accepted it.
  • Retrying a send without an idempotency key. A timeout does not prove that the first send failed.
  • Changing the from domain so the send works. The user picks the sender, not the agent.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

10x

FreeSummary

Review how you use Superset and identify unused features that fit your workflow. Get a short list of suggestions, learn about each option, and set up selected features such as scheduled agents, parallel workspaces, or shared tasks.

  • Find unused Superset features worth exploring
  • Set up scheduled agent tasks
  • Start parallel work in separate workspaces
ParadevAI/Paradev15.7KUpdated Oct 29, 2026

automate

FreeSummary

Set up recurring tasks in Superset with an agent prompt, a schedule or event trigger, and a chosen execution workspace. After explicit confirmation, create the automation, check its saved settings, and review a real first run.

  • Scheduling a daily or weekly agent task
  • Starting agent work when a GitHub pull request opens
  • Triggering tasks from selected Slack reactions
ParadevAI/Paradev15.7KUpdated Oct 29, 2026

browser

FreeSummary

Browse pages, click controls, fill fields, and inspect screenshots or console messages through Superset's browser pane. Use it to preview a running web app, check interface behavior, and work through browser tasks in a visible session.

  • Preview a locally running web app
  • Capture screenshots of a page
  • Inspect console errors
ParadevAI/Paradev15.7KUpdated Oct 29, 2026

Build Stripe payments, subscriptions, and invoicing using verified documentation and API parameter definitions. The skill guides product selection, sandbox testing, and webhook handling, where server notifications determine payment and subscription state.

  • Choose Stripe products for payments or recurring billing
  • Implement Checkout or invoice flows
  • Investigate Stripe code that compiles but behaves incorrectly
ParadevAI/Paradev15.7KUpdated Oct 29, 2026

cdp-verification

FreeSummary

Verify a UI change or reproduce a bug in the running desktop app using the Chrome DevTools Protocol (CDP), a browser debugging interface. Follow the real user journey and compare screenshots with measurements such as route, scroll position, and persisted state.

  • Reproducing a UI bug in the running app
  • Verifying a UI change end to end
  • Checking behavior after a route or workspace switch
ParadevAI/Paradev15.7KUpdated Oct 29, 2026

ci-triage

FreeSummary

Diagnose failed GitHub Actions runs by finding the first meaningful error, separating code problems from infrastructure issues and intermittent failures, and comparing the base branch. Get a focused report explaining the PR’s involvement and recommended next steps.

  • Investigating failed PR checks
  • Separating intermittent test failures from code defects
  • Checking whether the base branch already fails
ParadevAI/Paradev15.7KUpdated Oct 29, 2026

See all skills by ParadevAI

Report a problem with this skill