Heroku部署Parse Server重置密码功能报错的配置求助
嘿,这个问题我太熟了!你这段密码重置的代码本身没问题:
@IBAction func forgotPasswordTapped(_ sender: Any) { if let username = self.emailTextField.text { PFUser.requestPasswordResetForEmail(inBackground: username) { (success, error) in if(success) { print("forgot password successful and sent") } } } }
但出现的错误:
"An appName, publicServerURL, and emailAdapter are required for password reset and email verification functionality. (Code: 1, Version: 1.16.0)"
本质就是Parse Server缺少了邮件功能必需的基础配置。确实需要在Heroku上配置邮件相关设置,下面我给你一步步拆解Mailgun和SendGrid两种方案的配置流程:
一、先搞定基础配置:appName和publicServerURL
这两个是Parse Server邮件功能的基础前提,先在Heroku里配置好:
- 登录Heroku,找到你的Parse Server应用,进入「Settings」标签页
- 往下滑到「Config Vars」区域,点击「Reveal Config Vars」
- 添加/修改两个环境变量:
APP_NAME:填你的应用名称(比如"MyTodoApp",随便取个好记的就行)SERVER_URL:填你的Heroku Parse Server公开地址,格式是https://<你的应用名称>.herokuapp.com/parse(把尖括号里的内容换成你实际的应用名)
二、配置邮件适配器(二选一即可)
不管用Mailgun还是SendGrid,核心都是给Parse Server指定邮件适配器,让它能发送重置邮件。
方案1:Mailgun配置步骤
给Heroku应用添加Mailgun插件
- 进入应用的「Resources」标签页,搜索「Mailgun」并添加(免费版完全够测试用)
- 添加完成后,Heroku会自动在「Config Vars」里生成
MAILGUN_API_KEY和MAILGUN_DOMAIN两个变量,不用手动改
配置Parse Server的邮件适配器变量
- 回到「Settings」的「Config Vars」,点击「Add」新增一个变量:
- 变量名:
PARSE_SERVER_EMAIL_ADAPTER - 值:
{ "module": "parse-server-simple-mailgun-adapter", "options": { "fromAddress": "noreply@你的Mailgun域名.com", "domain": "$MAILGUN_DOMAIN", "apiKey": "$MAILGUN_API_KEY" } }
- 变量名:
- 注意:
$MAILGUN_DOMAIN和$MAILGUN_API_KEY会自动读取Heroku已有的环境变量,不用替换成实际字符串
- 回到「Settings」的「Config Vars」,点击「Add」新增一个变量:
方案2:SendGrid配置步骤
给Heroku应用添加SendGrid插件
- 进入应用的「Resources」标签页,搜索「SendGrid」并添加(免费版足够测试)
- 添加完成后,Heroku会自动生成
SENDGRID_API_KEY环境变量
配置Parse Server的邮件适配器变量
- 回到「Settings」的「Config Vars」,新增变量:
- 变量名:
PARSE_SERVER_EMAIL_ADAPTER - 值:
{ "module": "parse-server-sendgrid-adapter", "options": { "fromAddress": "noreply@yourapp.com", "apiKey": "$SENDGRID_API_KEY" } }
- 变量名:
- 同样,
$SENDGRID_API_KEY会自动读取Heroku的环境变量,无需手动替换
- 回到「Settings」的「Config Vars」,新增变量:
三、最后一步:重启应用生效
所有变量配置完后,回到应用的「Overview」标签页,点击右上角的「More」→「Restart all dynos」重启应用,确保所有配置生效。
之后再测试你的密码重置功能,应该就能正常发送邮件啦!
内容的提问来源于stack exchange,提问作者FuzzyGreenMarker
相关产品推荐
相关产品推荐

