supabase的账号体系基于电子邮件或手机号,已经实现了很完善的功能.本章介绍如何配置smtp服务,以及如何将邮件内容修改为中文.
配置smtp
编辑docker目录下.env文件,内容如下:
## Email auth
ENABLE_EMAIL_SIGNUP=true
ENABLE_EMAIL_AUTOCONFIRM=false
SMTP_ADMIN_EMAIL=service@xxx.com
SMTP_HOST=smtpdm.aliyun.com
SMTP_PORT=25
SMTP_USER=service@xxx.com
SMTP_PASS=xxxxxx
SMTP_SENDER_NAME=BD采集相机
ENABLE_ANONYMOUS_USERS=false
上文搭建环境时推荐用163邮箱测试,但是生产环境明显是不合适的,当邮件量过大(每天>200),存在随时被关闭的风险.因此强烈推荐使用 阿里云邮件推送服务. 还可以配置自己域名的,且收费极低,5w/90元,每封邮件1.8厘. 测试时基本在5s内送达, 每天免费200封,强烈推荐.
中文邮件模板配置
编辑docker目录下, docker-compose.yml
#新增配置
GOTRUE_MAILER_SUBJECTS_CONFIRMATION: "确认注册"
GOTRUE_MAILER_SUBJECTS_INVITE: "你被邀请了"
GOTRUE_MAILER_SUBJECTS_RECOVERY: "重置密码"
#确认注册邮件模板url
GOTRUE_MAILER_TEMPLATES_CONFIRMATION: "https://ctaias.com/bdcamera/public/MAILER_TEMPLATES_CONFIRMATION.html"
#找回密码邮件模板url
GOTRUE_MAILER_TEMPLATES_RECOVERY: "https://ctaias.com/bdcamera/public/MAILER_TEMPLATES_RECOVERY.html"
配置中文标题,以及邮件模板所在的url连接. 如果不配置默认发送的邮件内容时英文的.完成上述配置后别忘了重启supabase服务.
模板内容参考
html模板文件内容,里面的变量请参考 https://github.com/supabase/auth/blob/master/internal/mailer/template.go
确认注册模板:MAILER_TEMPLATES_CONFIRMATION.html
<h2>确认注册</h2>
<p>点击此链接确认您的用户:</p>
<p> </p>
<p><a href="{{ .ConfirmationURL }}">确认邮件</a></p>
<p> </p>
<p>这是一封自动邮件,请勿直接回复此邮件地址.如有疑问请发邮件到 :bdcamera@163.com</p>
重置密码模板:MAILER_TEMPLATES_RECOVERY.html
<h2>重置密码</h2>
<p>你正在进行重置密码操作,请在App重置密码界面输入以下验证码:</p>
<p> </p>
<p>验证码: {{ .Token }}</p>
<p> </p>
<p>这是一封自动邮件,请勿直接回复此邮件地址.如有疑问请发邮件到:bdcamera@163.com</p>
注意:模板html文件必须保存成utf-8格式,否则乱码.
从过上述配置,可以安心的使用基于邮件的用户认证了.