resend について
resendは、Resend APIを使ったメールワークフローを実装する開発者向けスキルです。送信、予約配信、ドメイン管理、連絡先、ブロードキャスト、Webhookイベント処理を扱います。
主な機能
- 01トランザクションメールと一括送信
- 02予約配信と冪等性の確保
- 03ドメイン設定と検証
- 04連絡先とブロードキャストの管理
- 05Webhookイベントの検証
活用シーン
- 01パスワードリセットや領収書の送信
- 02メール配信の予約
- 03Webhookによる配信イベント追跡
- 04送信ドメインと連絡先の管理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ oakoss/ agent-skills --skill resendインストール後、Claude Code で/resendを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/contacts-and-broadcasts.mddomain-management.mdsending-emails.mdwebhooks.md詳細
Resend
概要
Resend は開発者向けに構築された最新のメール API です。React Email コンポーネント、ドメイン管理、Webhook によるイベント追跡に対応し、プログラムからメールを送信できます。
使用する場面: トランザクションメール(ウェルカムメール、パスワードリセット、領収書)、一括メール配信、予約送信、Webhook による配信追跡、ドメイン認証、React Email との連携。
使用しない場面: 大量のマーケティングオートメーション(専用の ESP を使用してください)、SMS/プッシュ通知、メールホスティング/受信トレイ管理。
クイックリファレンス
| パターン | API | 主なポイント |
|---|---|---|
| メールを送信 | resend.emails.send({ from, to, subject }) | { data, error } を返します。html/text/react コンテンツに対応しています |
| React で送信 | resend.emails.send({ react: <Email /> }) | Node.js SDK のみ。React Email コンポーネントをサーバー側でレンダリングします |
| 一括送信 | resend.batch.send([...emails]) | 1 回のリクエストで複数のメールを送信します。添付ファイル/予約送信には対応していません |
| メールを予約 | emails.send({ scheduled_at }) | ISO 8601 または自然言語に対応しています。送信期間の開始前にキャンセルできます |
| 添付ファイル | emails.send({ attachments: [...] }) | エンコード後の合計サイズは最大 40MB です。コンテンツまたはパスを指定できます |
| 冪等性を保って送信 | emails.send(params, { idempotencyKey }) | 再試行時の重複送信を防ぎます |
| メールを取得 | resend.emails.get(emailId) | 配信状況とメタデータを確認できます |
| ドメインを追加 | resend.domains.create({ name }) | SPF、DKIM、MX の DNS レコードを返します |
| ドメインを認証 | resend.domains.verify(domainId) | DNS レコードのチェックを開始します |
| ドメインを一覧表示 | resend.domains.list() | すべてのドメインとステータスを返します |
| Webhook を作成 | ダッシュボードまたは API | メールのライフサイクルイベントを購読します |
| Webhook を検証 | resend.webhooks.verify({ payload, ... }) | Svix の署名ヘッダーを検証します |
| タグ | emails.send({ tags: [...] }) | 分類用のキーと値のペアです。ASCII のみ、最大 256 文字です |
| カスタムヘッダー | emails.send({ headers: {...} }) | カスタムメールヘッダーを追加します |
| コンタクトを作成 | resend.contacts.create({ email, ... }) | カスタムプロパティを持つグローバルコンタクトを作成します |
| コンタクトを一覧表示 | resend.contacts.list() | すべてのコンタクトを返します |
| ブロードキャストを作成 | resend.broadcasts.create({ from, ... }) | セグメントに一括メールを送信します。テンプレート変数に対応しています |
| ブロードキャストを送信 | resend.broadcasts.send(id, { segmentId }) | コンタクトのセグメントにブロードキャストを配信します |
よくある間違い
| 間違い | 正しい方法 |
|---|---|
| 送信にルートドメインを使用する | 評判を分離するため、send.yourdomain.com などのサブドメインを使用します |
レスポンス内の error を確認しない | 常に { data, error } を分割代入し、エラーを処理します |
| バッチリクエストで添付ファイルを送信する | バッチ送信では添付ファイルとスケジュール設定はサポートされていません |
| API キーをソースコードにハードコードする | 環境変数 RESEND_API_KEY を使用します |
| Webhook の署名検証を省略する | イベントを処理する前に、必ず Svix ヘッダーを使用して検証します |
Node.js SDK 以外で react プロパティを使用する | react プロパティは Node.js SDK でのみ動作します |
| SPF/DKIM の検証後に DMARC を設定しない | 配信性を向上させるため、SPF と DKIM の認証後に DMARC レコードを追加します |
| 1 回の送信で受信者数が 50 人を超える | 1 リクエストあたり 50 人を超える場合は、バッチ送信を使用するかループ処理します |
タグ名/値の文字に && を使用する | タグ名と値には ASCII の英字、数字、_、または - のみ使用できます |
| バウンス/苦情の Webhook を無視する | 評判を守るため、email.bounced と email.complained を監視します |
委任
- メールテンプレートの設計:
Exploreエージェントを使用して、React Email のコンポーネントパターンを調べます - ドメインの DNS 設定:
Taskエージェントを使用して、DNS 設定を段階的に検証します - Webhook エンドポイントの設定:
Taskエージェントを使用して、ルートハンドラーを実装します
参考資料
コメント
Markdown 対応