- Home
- Skills
- Resend
- Resend Skills
- Resend Inbound
resend-inbound_skill
- JavaScript
63
GitHub Stars
1
Bundled Files
3 weeks ago
Catalog Refreshed
2 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstart where the catalogue uses aiagentskills.
npx veilstart add skill resend/resend-skills --skill resend-inbound- SKILL.md8.3 KB
Overview
This skill handles receiving emails with Resend, including inbound domain setup, webhook processing, retrieving message content and attachments, and forwarding received messages. It explains the required SDK features, secure webhook verification, and the two domain setups (Resend-managed or custom subdomain). The skill focuses on practical steps to reliably fetch bodies and files after receiving metadata webhooks.
How this skill works
Resend sends email.received webhooks containing metadata only; the actual email body and attachments must be fetched via the Receiving API. The skill verifies webhook signatures, calls emails.receiving.get() for full headers and bodies, lists attachments to obtain short-lived download URLs, and optionally downloads or forwards content using send endpoints. It recommends using subdomains to avoid breaking existing MX records and renewing download URLs when they expire.
When to use it
- You need to accept inbound mail for a support, billing, or system address
- You want to receive metadata quickly via webhooks and fetch full content separately
- You must download attachments securely and store them in your own storage
- You plan to forward incoming emails into a ticketing or team inbox
- You are developing locally and need webhook tunneling with verification
Best practices
- Always verify webhook signatures to prevent spoofed events
- Use a subdomain for Resend MX to avoid disrupting existing email services
- Call emails.receiving.get() to retrieve html/text and headers — webhooks only contain metadata
- List attachments to obtain download_url and download before it expires (1 hour)
- Return 200 OK quickly; non-200 responses trigger retries from Resend
Example use cases
- Route support@subdomain to a helpdesk by inspecting event.data.to and forwarding content
- Automatically save invoice attachments to cloud storage after downloading via download_url
- Build a forwarding pipeline that fetches body and attachments, then resends to a team address
- Local development using ngrok to receive email.received webhooks and verify them with the webhook secret
- Separate heavy email content retrieval from webhook handling to avoid serverless body limits
FAQ
No. Webhooks carry metadata only. Call the Receiving API to fetch html/text, headers, and attachments.
What if my attachment download_url expires?
Call the attachments list API again for a fresh download_url; URLs are valid for one hour.
Will adding MX for a root domain affect other mailboxes?
Yes. Adding MX at the root routes all mail to Resend. Use a subdomain to avoid breaking existing providers.