💡Cloudflare でドメインを取得し、Resend で認証して独自ドメインからメール送信できるようにするまでの手順。所要時間は約10分。
はじめに
個人開発でメール認証機能を実装する際、メール送信サービスの選定とドメイン設定が必要になります。Resend は開発者フレンドリーな API を提供しており、Cloudflare と組み合わせることで驚くほどスムーズにセットアップできます。
Resend はドメイン未認証の状態ではアカウントのメールアドレスにしか送信できません。誰にでもメールを送るには独自ドメインの認証が必須です。
この記事でわかること
対象読者
前提条件
-
Resend アカウント(無料プランでOK)
-
Cloudflare アカウント
Step 1: Resend の無料プランについて
Resend の無料プランの制限:
-
月 3,000 通まで送信可能
-
1日 100 通まで
-
カスタムドメイン 1 つ
Step 2: Cloudflare でドメインを取得
-
Cloudflare ダッシュボード → 「ドメインの登録」
-
希望のドメイン名を検索して購入
-
購入完了 → DNS 管理が自動で Cloudflare に設定される
✅Cloudflare で直接取得すると DNS 管理が自動設定されるため、ネームサーバー移行が不要でシームレスです。
Step 3: Resend でドメインを追加
-
Resend ダッシュボード → Domains → 「Add Domain」
-
ドメイン名を入力
-
Region を選択(日本なら Tokyo / ap-northeast-1)
-
DNS Records に設定すべきレコードが表示される
Step 4: Cloudflare で DNS レコードを設定
Resend が表示する 3 つの DNS レコードを Cloudflare に追加します:
Resend側でcloudflareへの遷移ボタンが出てくるのでそれを押すと下記の項目も追加する画面に直接遷移します。なので深く考える必要はないはずです。
DKIM(TXT レコード)
- Type: TXT / Name: resend._domainkey / Content: Resend が表示する値をコピー
SPF(MX + TXT レコード)
⚠️Cloudflare の Proxy(オレンジ雲)ではなく DNS Only(グレー雲)にすること。メール関連はプロキシ経由だと動作しません。
Step 5: 認証を確認
Resend の Domains ページで Verify をクリック。全てのレコードが Verified になれば完了です。
Cloudflare の場合、DNS 反映がほぼリアルタイムで完了するため、追加後すぐに認証が通りました。他のレジストラでは数時間かかることもあるので、この速さは大きなメリットです。
僕の時は五分くらいで完了しました。
Step 6: コードでメール送信
npm install resend
RESEND_API_KEY=re_xxxxxxxxxxxx
import { Resend } from "resend";
const resend = new Resend(process.env.RESEND_API_KEY);
const FROM_EMAIL = "[email protected]";
export async function sendEmail(to: string, subject: string, html: string) {
const { error } = await resend.emails.send({
from: FROM_EMAIL,
to,
subject,
html,
});
if (error) {
console.error("Failed to send email:", error);
throw new Error("メールの送信に失敗しました");
}
}
Tips
1️⃣Cloudflare + Resend は DNS 反映が速く、セットアップが非常にスムーズ。10 分程度で完了します。
2️⃣Region は Tokyo (ap-northeast-1) を選ぶと日本向け配信レイテンシが最小に。
3️⃣Terraform での Resend 管理は、コミュニティプロバイダが 2023 年以降更新停止。手動設定が推奨。
トラブルシューティング
403 validation_error
「You can only send testing emails to your own email address」→ ドメイン未認証です。認証を完了させてください。
DNS が Verified にならない
参考リンク
まとめ
-
Resend 無料プランでも月 3,000 通送信可能(ドメイン認証必須)
-
Cloudflare × Resend は DNS 反映が速くシームレスにセットアップできる
-
必要な DNS レコードは DKIM(TXT)と SPF(MX + TXT)の 3 つ
-
ドメイン取得から認証完了・メール送信まで約 10 分で完了