resend-inbound_skill

This skill helps you receive, verify, and forward emails with Resend by processing webhooks, retrieving content, and handling attachments.
  • 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.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational