Brevo(旧Sendinblue)とSupabaseを連携してメール送信する手順
1. Brevoでの準備
Brevoにログインし、管理画面(SMTP & APIなど)にアクセス。
ドメイン認証(SPF, DKIM) を実施し、no-reply@あなたのドメインなど、トランザクショナルメールとして使用する差出人を作成。
SMTPページで以下の情報を確認または生成する:
SMTPサーバー(Host): smtp-relay.brevo.com
SMTPユーザー(ログイン): Brevoが発行するメールアドレス形式
SMTPキー(Master Password): APIキーではなくSMTPキーを使用
ポート番号: 587や465など(TLS/SSL対応ポート)
2. Supabaseでの設定
Supabaseダッシュボードにログイン。
該当プロジェクトを選び、左メニューから 「Authentication」 を選択。
上部メニューの 「Settings」(または「Configuration」)タブを開き、下へスクロールして 「Custom SMTP」 セクションへ。
下記の項目を入力していく:
SMTP Host: smtp-relay.brevo.com
SMTP Port: 587(TLS/STARTTLS推奨。465の場合はSSL暗号化)
SMTP Username: BrevoのSMTPユーザー
SMTP Password: BrevoのSMTPキー(Master Password)
From: 例)no-reply@あなたのドメイン(Brevo側で認証済みの送信元を使用)
入力が完了したら 「Save」(または「Update」)して設定を保存。
3. テスト・確認
メール送信テスト:
ユーザー登録、Magic Linkログイン、パスワードリセットなどのAuthフローを実行し、実際にメールが届くか確認します。
迷惑メールフォルダに入っていないかも要チェック。
4. 運用時の注意点
レートリミット
Supabase側では、カスタムSMTP利用時に1時間あたり30通程度の初期リミットが設定されています。大規模運用前には「Rate Limits」ページを確認。
BOT対策
攻撃者による大量のメール送信やスパム行為を防ぐため、CAPTCHAの導入や、不要なサインアップを抑制する設定を検討。
ドメイン認証(SPF, DKIM, DMARC)
メールの到達率向上・スパム回避のため、Brevo側だけでなくDNS設定も適切に行う。
認証メールとマーケティングメールの分離
トランザクショナルメールの送信元を分けると、万が一片方でスパム評価が下がっても影響を最小限に抑えられます。
まとめ
Brevo側: ドメイン認証 → SMTPキー取得 → SMTP送信元の設定
Supabase側: 「Authentication」→「Settings」→「Custom SMTP」にBrevoのSMTP情報を入力 → 保存
確認: Authメール(Magic Linkなど)が正常に届くかテスト
運用: レートリミット・スパム対策・ドメイン認証をしっかり行い、安全かつスムーズなメール配信を実現する。
これでBrevo SMTPを使ったSupabase Authのメール送信環境が整います。あとは実際のAuthフロー(ユーザー登録、ログイン、パスワードリセット等)で配信を試し、運用上の最適化を進めてみてください。
参考
https://help.brevo.com/hc/en-us/articles/7924908994450-Send-transactional-emails-using-Brevo-SMTP