⚠️
【Supabase】Email アドレスを用いたログインにカスタムSMTPの設定が必須に
Supabase Auth におけるデフォルトのメールプロバイダが変更されることが発表された。この変更により、2024年9月26日以降、デフォルトのメールプロバイダを使用している場合、カスタム SMTP の設定が必須となった。本記事では、公式のディスカッションをもとに変更点と対応について紹介する。
※最新情報や詳細はこちら
変更の背景
Supabase は、多くのユーザに無料プランを提供しているが、セキュリティと安定性を保つために、メール認証における不正利用を防止する必要が出てきた。そのため、デフォルトのメールプロバイダに対して新しい制限を導入し、カスタム SMTP プロバイダの利用を推奨している。
どんな変更があるのか?
9月26日より、以下の変更が適用される。
- カスタム SMTP サーバを設定しない場合、メールはプロジェクトの組織内のメールアドレスにのみ送信される。
- 例:組織メンバが
person-a@example.com
、person-b@example.com
、person-c@example.com
の場合、これらのアドレスにのみメールが送信される。 - カスタム SMTP を設定していなくても、メールテンプレートのカスタマイズは引き続き可能。カスタマイズしたテンプレートがデフォルトに戻されることはない。
開発者がとるべき対策
【推奨】カスタムSMTPプロバイダの設定
- おすすめのプロバイダ
- Resend
- AWS SES
- Postmark
- SendGrid
- Zepto Mail
- Brevo
- 設定手順
- プロバイダにアカウントを作成し、送信ドメインを認証する。
- SMTPのユーザ名とパスワードを取得する
- Supabase の Auth 設定ページにこれらの情報を入力する
メール確認をオフにする
現在この動作はサポートされていないが、10月の第一週に修正がリリースされる予定。
注意点:メール確認をオフにしても、パスワードリセットなどはメール認証が必要となる。しかし、これらの機能も9月26日以降は組織内のメールアドレスにのみ送信される。つまり、パスワードリセット機能がユーザに正常に提供されなくなる可能性がある。
メールフックを利用する
- カスタム SMTP を使用しない場合、メール送信フックを設定してメール送信を無効化できる
- Postgres 関数で何もしない関数を定義することで実現可能
よくある質問
なぜ急な通知が行われたのか?
第三者のメール送信プロバイダから、メールの悪用を大幅に削減しないと送信を停止するとの要請があったため、急遽対応が必要となった
Supabase は他のメールプロバイダに切り替えられないのか?
切り替えたとしても、同様の問題が発生する可能性が高いため、根本的な解決にはならない。
Supabase が独自でメールを送信することはできないのか?
ポート25の開放やスパムリストからの除外など、多大な労力とコストがかかるため現実的ではない。
まとめ
Supabase のメール認証に関する今回の変更は、サービスの安全性と信頼性を維持するための重要な措置である。開発者は以下の対応を検討すること。
- カスタム SMTP プロバイダの設定を早めに行う。
- メール送信フックを活用して、不要なメール送信を防ぐ。
- 今後の公式アップデートに注意を払い、必要な対応を適宜行う。
Discussion