Supabase Auth のカスタム SMTP 比較 - 公式ドキュメント掲載 6 サービスを無料枠で評価する
Supabase Auth は、メール認証、マジックリンク、OTP など多彩な認証方式を提供する BaaS です。しかし、デフォルトの SMTP サーバーには厳しい送信制限があり、本番環境にはそのまま使えません。
Supabase の公式ドキュメントの「How to set up a custom SMTP server?」セクションには、対応するメール送信サービスとして以下の 6 つが挙げられています。
本記事では、この 6 サービスを無料枠、SMTP 設定値、導入の手軽さの観点で比較し、どのサービスを選ぶべきかを整理します。
デフォルト SMTP の制限
まず、なぜカスタム SMTP が必要なのかを確認します。Supabase のデフォルト SMTP には以下の制限があります。
| 制限 | 内容 |
|---|---|
| 送信先の制限 | 事前に認可されたアドレス(組織のチームメンバー)のみ |
| レート制限 | 時間あたりのメッセージ数に制限あり(予告なく変更される可能性) |
| 本番利用 | 非推奨(開発・テスト用途向け) |
つまり、サインアップフローでユーザーに確認メールを送るといった基本的な機能でさえ、デフォルトのままでは動作しません。本番環境で Supabase Auth を使うなら、カスタム SMTP の設定は必須です。
6 サービスの無料枠比較
各サービスの無料枠を比較します。
| サービス | 無料枠(月間) | 日次上限 | 無料枠の期間 | 有料プランの最低価格 |
|---|---|---|---|---|
| Resend | 3,000 通 | 100 通 | 無期限 | $20/月(50,000 通) |
| AWS SES | 3,000 通 | なし | 12 か月 | $0.10/1,000 通(従量課金) |
| Postmark | 100 通 | なし | 無期限 | $15/月(10,000 通) |
| Twilio SendGrid | 100 通/日(トライアル) | 100 通 | 60 日間トライアル | $19.95/月〜 |
| ZeptoMail | 10,000 通(初回のみ) | なし | クレジット有効期限 6 か月 | $2.50/10,000 通(従量課金) |
| Brevo | 約 9,000 通 | 300 通 | 無期限 | $9/月(5,000 通) |
無料枠の評価
日次上限で比較すると Brevo が最も余裕があります。 日 300 通は、中規模のサービスでも認証メールの送信に十分な量です。月間換算で約 9,000 通になります。
恒久的な無料枠があるのは Resend、Postmark、Brevo の 3 サービスです。AWS SES は 12 か月で無料枠が終了し、SendGrid は 60 日間のトライアルのみです。ZeptoMail は初回クレジット(10,000 通)が無料ですが、使い切ったら有料になります。
Postmark の月 100 通は、本番環境では不足します。 テストや個人の趣味プロジェクト以外では実用的ではありません。
SMTP 設定値の比較
各サービスの SMTP 設定値をまとめます。Supabase ダッシュボードの「SMTP Settings」に入力する値です。
| サービス | Host | Port | Username | Password |
|---|---|---|---|---|
| Resend | smtp.resend.com | 465 | resend | API キー |
| AWS SES | email-smtp.{region}.amazonaws.com | 465 / 587 | SMTP ユーザー名(IAM で生成) | SMTP パスワード(IAM で生成) |
| Postmark | smtp.postmarkapp.com | 587 | サーバー API トークン | サーバー API トークン |
| SendGrid | smtp.sendgrid.net | 587 | apikey | API キー |
| ZeptoMail | smtp.zeptomail.com | 465 / 587 | emailapikey | SMTP パスワード(ダッシュボードで生成) |
| Brevo | smtp-relay.brevo.com | 587 | アカウントのメールアドレス | SMTP キー(ダッシュボードで生成) |
設定の手軽さ
Resend と SendGrid は設定が最もシンプルです。 API キーを生成してそのまま Password に入力するだけで完了します。Username も固定値(resend / apikey)なので迷いません。さらに、Resend には Supabase 専用の連携ガイドが用意されています。
AWS SES は設定の手順が多くなります。 IAM ユーザーの作成、SMTP 認証情報の生成、SES でのドメイン認証、サンドボックスの解除申請が必要です。AWS に慣れていれば問題ありませんが、初めて触る場合はハードルが高くなります。
ZeptoMail と Brevo は中間的な手軽さです。 ダッシュボードで SMTP キーを生成する手順が必要ですが、特に複雑ではありません。
おすすめの選択肢
用途別に整理します。
個人プロジェクト・小規模サービス → Resend
- 無料枠(月 3,000 通)で十分
- 設定が最もシンプル
- Supabase 公式ドキュメントに設定手順が記載されている
- Resend 側にも Supabase 連携ガイドがある
- 開発者向けのドキュメントとダッシュボードが使いやすい
無料枠を最大限に活用したい → Brevo
- 日 300 通(月 ~9,000 通)は 6 サービス中最大の無料枠
- 無期限の無料枠
- マーケティングメール機能も利用可能
AWS を既に利用している → AWS SES
- AWS エコシステムとの統合が容易
- 従量課金($0.10/1,000 通)で、大量送信時のコストが最も安い
- 12 か月の無料枠終了後も低コストで運用可能
- CloudWatch でメトリクスを監視できる
到達率を最重視する → Postmark
- トランザクショナルメールに特化しており、到達率の高さに定評がある
- ただし無料枠は月 100 通と少ないため、有料プラン($15/月〜)前提
カスタム SMTP の設定手順
どのサービスを選んでも、設定の流れは共通です。
1. メール送信サービスのアカウント作成
選んだサービスでアカウントを作成します。
2. ドメインの追加と DNS 認証
送信元ドメインをサービスに登録し、DNS レコード(SPF、DKIM、DMARC)をドメインの DNS 管理画面に追加します。DNS レコードの反映には数分から最大 72 時間かかる場合があります。Cloudflare などの DNS サービスを利用している場合は、通常数分で反映されます。
3. SMTP 認証情報の取得
サービスのダッシュボードで SMTP 認証情報(API キーや SMTP パスワード)を生成します。具体的な値は前述の「SMTP 設定値の比較」テーブルを参照してください。
4. Supabase のカスタム SMTP 設定
Supabase ダッシュボードでカスタム SMTP を有効化し、認証情報を入力します。
- プロジェクトを開く
- 左サイドバーから「Authentication」を選択する
- 「SMTP Settings」セクションで「Enable Custom SMTP」をオンにする
- Host、Port、Username、Password を入力する(値はサービスごとに異なります)
- Sender email に認証済みドメインのメールアドレス(例:
noreply@example.com)を入力する - 「Save」をクリックする
5. レート制限の調整
カスタム SMTP を設定した直後は、Supabase 側のレート制限がデフォルトで 1 時間あたり 30 メッセージに設定されています。必要に応じて、Supabase ダッシュボードの「Rate Limits」設定ページで値を調整してください。
利用するサービスの無料枠の日次上限を超えない範囲で設定するのが安全です。
6. 動作確認
- Supabase ダッシュボードの「Authentication」>「Users」を開く
- 「Add User」>「Send Invitation」でテスト用のメールアドレスに招待メールを送信する
- メールが届くことを確認する
各サービスのダッシュボードでも、メールの送信ログを確認できます。
カスタム SMTP 設定時の注意点
無料枠の上限を把握する
各サービスの無料枠には上限があります。上限を超えるとメール送信が失敗し、ユーザーがサインアップやパスワードリセットを完了できなくなります。サインアップが集中するタイミング(リリース直後、プロモーション時など)には特に注意が必要です。
ドメインの信頼性を維持する
送信元ドメインの DNS レコード(SPF、DKIM、DMARC)が正しく設定されていないと、メールがスパム判定される可能性があります。ドメイン認証ステップで設定した DNS レコードは削除しないでください。
まとめ
Supabase Auth のデフォルト SMTP は開発・テスト用途に限定されており、本番環境ではカスタム SMTP の設定が必須です。
公式ドキュメントに掲載されている 6 サービスの中で、無料枠と設定の手軽さのバランスが最も良いのは Resend です。月 3,000 通の無期限無料枠があり、Supabase との連携ドキュメントも充実しています。
無料枠の大きさを重視するなら Brevo(日 300 通、月 ~9,000 通)、AWS を既に利用しているなら AWS SES(従量課金で低コスト)が有力な選択肢です。
| 観点 | おすすめ |
|---|---|
| 設定の手軽さ | Resend |
| 無料枠の大きさ | Brevo |
| 大量送信時のコスト | AWS SES |
| 到達率 | Postmark |
いずれのサービスも、設定作業は 30 分から 1 時間程度で完了します。Supabase Auth を本番環境で使う予定があるなら、プロジェクト作成後の早い段階でカスタム SMTP を設定しておくことをおすすめします。
参考情報
- Supabase Auth 公式ドキュメント
- Supabase カスタム SMTP 設定ガイド
- Supabase 本番環境チェックリスト
- Resend 公式サイト
- Resend Supabase SMTP 連携ガイド
- Resend 料金プラン
- AWS SES 料金
- AWS SES SMTP ガイド
- Postmark SMTP ガイド
- Postmark 料金プラン
- SendGrid SMTP ガイド
- SendGrid 料金プラン
- ZeptoMail SMTP ガイド
- ZeptoMail 料金プラン
- Brevo 料金プラン
以上、Supabase Auth のカスタム SMTP 選定についてまとめた、現場からお送りしました。