📛

Supabaseで登録メールにユーザー名を表示させる

2023/01/29に公開

ユーザー登録時のメールにユーザー名を表示させたい

メールアドレスをユーザー登録時の送信メール内で表示させるにはこちらのドキュメントを見ればわかります。しかし、ユーザー名を表示させるにはどうすればいいのでしょうか?
https://supabase.com/docs/guides/auth/auth-email-templates

まずはsignupします。

const { error: signUpError } = await supabaseClient.auth.signUp(
            {
              email: email,
              password: password
	      options: {
	        data: { 
                 handle_name: 'testusername'
		}
	            }
            },
          );

このとき、handle_nameという名前のフィールドを含めて送信したとしましょう。
このデータはauth.usersテーブルのraw_user_meta_dataというカラムに保存されます。

あとはこのデータをメールのテンプレート内で引っ張り出すだけです。

{{ .Data.handle_name }}さん

メールのTemplateについては以下のところに実装があるので、うまくいかない場合は参考にしてみてください。
https://github.com/supabase/gotrue/blob/master/mailer/template.go

なお、今回の例は、handle_nameがユーザー同士でかぶってしまっても問題ない場合の実装です。
問題がある場合は下記Issueを追ってみると解決の糸口をつかめるかもしれません。ではでは。
https://github.com/supabase/supabase/discussions/3491

Discussion