← メディア一覧

Resendの設定方法|ドメイン認証・APIキー・問い合わせメール送信まで

Resendで独自ドメインの送信設定を行い、APIキーを安全に保管し、問い合わせフォームの配信を確認する手順を整理します。

ノートPCにメール配信経路の図が表示された作業風景

この記事で
わかること

  • 送信元は認証済み自社ドメイン、受信先は担当者、reply-toは問い合わせ者として分けます。
  • DNSレコードはResend画面の値と照合し、送信専用のAPIキーをサーバー側Secretへ保存します。
  • API受理と受信箱への到達は別々に確認し、届かない場合は配信履歴から切り分けます。

「Resend 設定方法」で探している人が最初につまずきやすいのは、APIキーを作る前後の独自ドメイン認証です。問い合わせフォームから送信する場合は、送信元ドメイン、APIキーの権限、受信先、エラー時の確認方法を一つの流れで考える必要があります。この記事はWebサイトのメール通知を自分で構築・運用する担当者向けです。

01Resendでメールを送るまでの全体像

Resendはメールを受信する受信箱そのものではなく、アプリケーションからメールを送るためのサービスです。フォームの入力を受けたサーバーがResend APIを呼び、認証済みドメインのアドレスから担当者へ通知します。送信元アドレス、問い合わせを受け取る宛先アドレス、利用者へ返信するためのreply-toは役割が異なります。利用者の入力したメールアドレスを無条件に送信元へ使うと、ドメイン認証と整合しなくなります。

Resendを使った問い合わせ通知で、認証済み送信元、受信先、返信先がどう違うかを示す図
図1:送信元・受信先・返信先の関係。実際の住所やキーは載せていません。

02独自ドメインを追加して認証する

ResendのDomainsで利用したい送信ドメインを追加し、画面に表示されたDNSレコードを、そのドメインのDNS管理サービスへ登録します。表示されるレコードは利用するドメインや設定によって変わるため、記事に書かれた固定値をコピーしないでください。Resendが提示する値を一つずつ照合します。CloudflareでDNSを管理している場合はDomain Connectによる簡略化が利用できることもありますが、対応状況はその時点の画面で確認します。

  1. ResendのDomainsからドメインを追加する。
  2. 表示されたDKIMやSPFなど、送信機能に必要なレコードをDNS管理画面へ登録する。
  3. DNS反映後、Resend側の検証状態を確認する。
  4. 検証に失敗したら、ホスト名の重複、レコード種別、値の転記、DNS反映待ちを点検する。
Resendの独自ドメイン認証でDomains追加、DNSレコード登録、検証状態確認へ進む設定手順図
図2:ドメイン認証の設定順。Resendの画面に表示されたレコード値を正として入力します。

Resendはドメイン検証の進行状況と、未検証レコードの案内を管理画面に表示します。DNSの反映には時間がかかる場合もあるため、未検証と出た直後に何度も値を変えず、現在の公開DNSレコードを確認する方が安全です。

03APIキーは送信専用・ドメイン限定で作る

ResendのAPI Keysからキーを作成します。問い合わせ通知の送信だけなら、必要な送信権限に限定し、可能なら送信元ドメインも限定します。管理用の広い権限のキーをフォーム送信に流用する必要はありません。キーは作成後に安全な場所へ控え、Cloudflare Pagesなどのサーバー側Secretに登録します。ソースコード、公開HTML、画面のスクリーンショット、サポート依頼の文面へ貼らないでください。

このサイトではRESEND_API_KEYという変数名でサーバー側から参照しています。CONTACT_FROMには検証済みドメインの送信元、CONTACT_TOには受信したいアドレスを設定します。値を入れる先は実装ごとに異なり、これらの変数名はResendが固定で要求するものではありません。

04フォームとつなぐ際の設計

APIキーをブラウザーから直接使わず、フォームの入力内容をまず自分のサーバーで検査します。Cloudflare Pages Functionsのようなサーバー側処理で、必須項目・メール形式・長さ・スパム判定を確認した後にResendを呼びます。問い合わせ者のアドレスはreply-toとして渡すと、通知を受けた担当者が返信しやすくなります。受信者へ表示する件名や本文には入力内容を含められますが、ログに個人情報を過剰に残さないようにします。

実装するときは、Resend APIの受理応答と、受信箱への最終到達を分けて考えます。APIが成功しても迷惑メールに振り分けられる場合があります。配信履歴、受信側の迷惑メールフォルダー、送信ドメインの認証状態を合わせて確認してください。

05テスト送信とトラブルの切り分け

本番公開前に、受信できる自分のアドレスを使って1件送信します。送信に失敗したときは「ドメインが認証済みか」「送信元アドレスがそのドメインか」「APIキーの権限・対象ドメインは合っているか」「サーバー側Secretが適用されているか」の順に確かめます。送信は成功するのに受信しない場合は、Resendの配信履歴と受信側を確認します。大量の試験メールを送る前に、契約プランの上限も見てください。

Resend単体の設定が終わっても、問い合わせフォームをインターネットに公開するならスパム対策が必要です。Cloudflare PagesとTurnstileを組み合わせた構成では、Turnstileのトークンをサーバーで検証してからメール送信へ進めます。

06費用を見積もるときの観点

Resendは無料枠と有料プランを提供していますが、送信通数、1日あたりの上限、ドメイン数などはプランや時期で変わります。料金表にある通数だけでなく、通知先を増やすか、問い合わせ者にも自動返信するか、失敗時の再送をどう扱うかを数えてください。フォーム1件につき社内通知と自動返信を各1通送るなら、メール送信数は問い合わせ件数の2倍になります。現在の単価や上限はResend公式の料金表で最終確認します。

07具体例:送信元・受信先・返信先を分ける

架空の会社 `example.jp` の問い合わせ通知を設定するなら、認証済みドメインの送信元を `[email protected]`、社内受信先を `[email protected]`、reply-toをフォーム利用者が入力したアドレスとします。担当者の受信箱には自社ドメインからの通知が届き、返信操作では問い合わせ者へ返せます。利用者が入力したアドレスを送信元にすると、その利用者のドメインを自社が認証したことにはならず、送信できない、または配信品質を損なう構成になります。上記アドレスは説明用であり、このサイトの実設定ではありません。

DNS設定ではResendのDomains画面に表示されたレコード名・種別・値を、その時点のDNS管理画面と照合します。たとえば「Resendでは未検証、DNSを確認したら同じ名前が二重に付いていた」なら、値を何度も再発行する前にホスト名の入力方法を確認します。認証済み表示になったら、送信専用・対象ドメインを絞ったAPIキーをサーバー側Secretへ保存し、ブラウザーのソースや初期化用画面に置いていないことを確認します。

テスト送信の切り分けは二段階です。APIがエラーなら、キーの権限、送信元ドメイン、サーバー側環境変数、リクエストの必須項目を確認します。APIが受理したのにメールが見えなければ、Resendの配信履歴、宛先の迷惑メール、受信側ルールを確認します。送信者へ「受付完了」を表示する条件と、担当者が実際に読める状態は区別して運用してください。

関連記事

参考資料

内容は公開時点の公式資料をもとに構成しています。仕様は変更されることがあるため、導入時は最新の公式情報をご確認ください。