Menu

Resend統合

Resendは開発者向けに特化したメールAPIで、トランザクションメールの送信、追跡、管理のプロセスを簡素化します。開発者がメールインフラストラクチャの複雑さに深入りすることなく、アプリケーションの構築に集中できるように支援します。

Nextyボイラープレートでは、Resendを使用して以下の通知を実装しています:

  • 新規ユーザー歓迎メール
  • Magic Linkログインメール
  • ニュースレター購読通知
  • 支払い失敗メール通知

ResendはAPIを通じてメールを送信できるだけでなく、Resendダッシュボードのブロードキャスト機能を使用してマーケティングメールを送信することも可能です。

次に、NextyボイラープレートでのResend統合プロセスを紹介します。

登録と基本設定

  1. Resendにアクセスし、メールアドレスでアカウントを登録します

  2. API Keysページに移動し、API Keyを作成します, API Keyをプロジェクトの環境変数RESEND_API_KEYに追加します

Resend API Keys
Resend API Keys
  1. Audience - Segment を開き、Segmentを作成し、Segment IDをプロジェクトの環境変数RESEND_SEGMENT_IDにコピーします
Resend Segment
Resend Segment

Good to know

Segmentはグループと理解できます。必須ではなく、ユーザーがどの機能から来たかを区別する必要がある場合にのみ必要です。

NEXTY.DEV テンプレートでは、RESEND_SEGMENT_IDが設定されている場合、メールを送信するメソッドを呼び出すとき、その Segment に連絡先が追加されます。RESEND_SEGMENT_IDが設定されていない場合、連絡先はデフォルトの Contact リストにのみ追加されます。

// add user to contacts
if (RESEND_SEGMENT_ID) {
  await resend.contacts.segments.add({
    email,
    segmentId: RESEND_SEGMENT_ID,
  });
} else {
  await resend.contacts.create({
    email,
  });
}
 
// remove user from contacts
if (RESEND_SEGMENT_ID) {
  await resend.contacts.segments.remove({
    email,
    segmentId: RESEND_SEGMENT_ID,
  });
} else {
  await resend.contacts.remove({
    email,
  });
}

NEXTY.DEV テンプレートでは、1つの Segment ID 環境変数のみ提供されています。メール連絡先をより詳細に管理する必要がある場合(ほとんどの製品では不要)、複数の Segment ID を作成し、異なる機能入口で異なる Segment ID を使用することができます。これにより、Resend バックエンドの異なる Segment で連絡先を管理できます。

  1. 次に、Domainsページを開き、あなたのドメインを追加します
Resend Domains
Resend Domains
  1. DNSレコードを追加します
Resend DNS

ここでは4つのDNSレコードを設定する必要があります。右上の「Sign in to Cloudflare」ボタンをクリックすると最初の3つは自動的に処理されますが、_dmarcレコードはCloudflare DNSページで手動で追加する必要があります。

Resend DNS

_dmarcレコードの設定のベストプラクティスは以下の通りです:

  • 初期段階(早期監視): まずv=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; pct=100から始めて、レポートを監視します。これにより、メール配信に影響を与えることなく、メール送信状況を確認し、メールの失敗を引き起こす可能性のある問題を特定できます。集約レポートを分析して、どのメールがSPFとDKIM検証に失敗したかを理解します。
  • 中間段階(中期隔離): メール送信状況に自信が持てたら、ポリシーをv=DMARC1; p=quarantine; rua=mailto:[email protected]; ruf=mailto:[email protected]; pct=100に変更します。これにより、検証に失敗したメールがスパムフォルダーに隔離されます。
  • 最終段階(最終拒否): メール送信設定が完全に正しいことが確信できたら、ポリシーをv=DMARC1; p=reject; rua=mailto:[email protected]; ruf=mailto:[email protected]; pct=100に変更します。これにより、検証に失敗したメールが拒否されます。これはドメインの最大限の保護を提供する最もセキュアな設定です。

ruarufは、メール送信レポートを受信するあなたのメールアドレスに置き換える必要があります。

_dmarcを設定する主な目的は、外部からの攻撃を防ぎ、攻撃者があなたのドメインになりすましてフィッシングメール、マルウェア、スパムを送信することを阻止することです。

すべてのDNSレコードが検証をパスすると、ステータスがVerifiedと表示されます。

Resend DNS

注目すべき点:

ステータスが長時間更新されない場合は、Restartをクリックしてみてください。

検証

これで、ページフッターでメール購読を試して、以下の検証を実行できます:

  • Resendダッシュボードのメールページでメール送信ステータスを確認する
  • Resendダッシュボードの Audiencesページでオーディエンス追加を確認する
  • Resendダッシュボードのログページでメール送信ログを確認する
  • 送信したメールアドレスで、APIによって送信された通知メールを受信したかどうかを確認する

Nextyボイラープレートでは、Upstash Redisで実装されたレート制限機能も組み込まれており、メール購読機能で使用例を提供しています。次章では、レート制限機能を有効にするためにUpstash設定を完了します。