You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用自定义SMTP服务器时Supabase Auth出现500错误求助

自定义SMTP下Supabase认证邮件触发500错误排查方案

问题现象

使用自定义SMTP服务器时,Supabase执行重置密码等需触发邮件发送的认证操作,会抛出以下错误:

AuthApiError: Unable to process request
at handleError (webpack-internal:///(action-browser)/./node_modules/@supabase/auth-js/dist/module/lib/fetch.js:74:11)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async _handleRequest (webpack-internal:///(action-browser)/./node_modules/@supabase/auth-js/dist/module/lib/fetch.js:117:9)
at async _request (webpack-internal:///(action-browser)/./node_modules/@supabase/auth-js/dist/module/lib/fetch.js:99:18)
at async SupabaseAuthClient.resetPasswordForEmail (webpack-internal:///(action-browser)/./node_modules/@supabase/auth-js/dist/module/GoTrueClient.js:1243:20)
at async resetPassword (webpack-internal:///(action-browser)/./app/(auth)/actions.ts:100:23)
at async C:\Users\admin\Documents\GitHub\better-guessr\node_modules\next\dist\compiled\next-server\app-page.runtime.dev.js:39:418)
at async rw (C:\Users\admin\Documents\GitHub\better-guessr\node_modules\next\dist\compiled\next-server\app-page.runtime.dev.js:38:7978)
at async r6 (C:\Users\admin\Documents\GitHub\better-guessr\node_modules\next\dist\compiled\next-server\app-page.runtime.dev.js:41:1256)
at async doRender (C:\Users\admin\Documents\GitHub\better-guessr\node_modules\next\dist\server\base-server.js:1438:30)
at async cacheEntry.responseCache.get.routeKind (C:\Users\admin\Documents\GitHub\better-guessr\node_modules\next\dist\server\base-server.js:1599:28)
at async DevServer.renderToResponseWithComponentsImpl (C:\Users\admin\Documents\GitHub\better-guessr\node_modules\next\dist\server\base-server.js:1507:28)
at async DevServer.renderPageComponent (C:\Users\admin\Documents\GitHub\better-guessr\node_modules\next\dist\server\base-server.js:1931:24)
at async DevServer.renderToResponseImpl (C:\Users\admin\Documents\GitHub\better-guessr\node_modules\next\dist\server\base-server.js:1969:32)
at async DevServer.pipeImpl (C:\Users\admin\Documents\GitHub\better-guessr\node_modules\next\dist\server\base-server.js:920:25)
at async NextNodeServer.handleCatchallRenderRequest (C:\Users\admin\Documents\GitHub\better-guessr\node_modules\next\dist\server\next-server.js:272:17)
at async DevServer.handleRequestImpl (C:\Users\admin\Documents\GitHub\better-guessr\node_modules\next\dist\server\base-server.js:816:17)
at async C:\Users\admin\Documents\GitHub\better-guessr\node_modules\next\dist\server\dev\next-dev-server.js:339:20)
at async Span.traceAsyncFn (C:\Users\admin\Documents\GitHub\better-guessr\node_modules\next\dist\trace\trace.js:154:20)
at async DevServer.handleRequest (C:\Users\admin\Documents\GitHub\better-guessr\node_modules\next\dist\server\dev\next-dev-server.js:336:24)
at async invokeRender (C:\Users\admin\Documents\GitHub\better-guessr\node_modules\next\dist\server\lib\router-server.js:174:21)
at async handleRequest (C:\Users\admin\Documents\GitHub\better-guessr\node_modules\next\dist\server\lib\router-server.js:353:24)
at async requestHandlerImpl (C:\Users\admin\Documents\GitHub\better-guessr\node_modules\next\dist\server\lib\router-server.js:377:13)
at async Server.requestListener (C:\Users\admin\Documents\GitHub\better-guessr\node_modules\next\dist\server\lib\start-server.js:141:13) {
__isAuthError: true,
status: 500,
code: 'unexpected_failure'
}

切换至Supabase内置邮件服务时,所有认证邮件功能正常。

排查与解决步骤

  • 核对SMTP配置参数
    检查Supabase控制台SMTP设置的核心字段:

    • 主机地址、端口:确认与SMTP服务商提供的信息完全一致(如587对应STARTTLS,465对应SSL)
    • 用户名、密码:确保是SMTP服务的有效凭据,部分服务商需使用专用应用密码而非账号登录密码
    • 加密方式:匹配服务商要求的SSL/TLS或STARTTLS选项
  • 检查SMTP服务器连接权限

    • 确认Supabase服务器IP未被SMTP服务商列入黑名单,部分邮件服务会限制陌生IP的连接请求
    • 若使用企业内部SMTP,需排查防火墙是否允许Supabase出站流量访问对应SMTP端口
  • 手动测试SMTP连通性
    使用终端命令验证SMTP服务器是否可正常访问:

    # 测试587端口(STARTTLS)
    openssl s_client -connect your-smtp-host:587 -starttls smtp
    # 测试465端口(SSL)
    openssl s_client -connect your-smtp-host:465
    

    若连接失败,直接联系SMTP服务商确认服务可用性或配置规则

  • 查看Supabase Auth日志
    进入Supabase控制台「Logs」页面,筛选auth分类日志,查看触发错误时的具体底层报错——unexpected_failure通常对应SMTP调用失败,日志会提供更细节的原因(如认证失败、超时、邮件格式错误)

  • 检查自定义邮件模板
    确认重置密码等邮件模板无语法错误,比如变量替换是否正确({{ .Token }}、{{ .Email }}),是否包含不符合SMTP规范的特殊字符

  • 确认SMTP发送配额
    检查SMTP服务商后台的发送频率、数量限额,若超出配额会直接拒绝请求,需调整配额或发送策略

内容的提问来源于stack exchange,提问作者Kyle H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 02:37:05