PureChatDocumentation
自托管认证

邮件服务配置

配置 PureChatNext SMTP 邮件发送、认证回调和常见服务商参数。

邮件服务用于邮箱验证、密码重置和魔法链接发送。支持两种邮件服务提供商。

Nodemailer(SMTP)

使用 SMTP 协议发送邮件,适合已有邮箱服务的用户。参考 Nodemailer SMTP 文档

环境变量类型描述示例
EMAIL_SERVICE_PROVIDER可选设置为 nodemailer(默认值)nodemailer
SMTP_HOST必选SMTP 服务器主机名gz-smtp.qcloudmail.com
SMTP_PORT必选SMTP 服务器端口(TLS 通常为 587,SSL 为 465465
SMTP_SECURE可选SSL 设置为 true(端口 465),TLS 设置为 false(端口 587)true
SMTP_USER必选SMTP 认证用户名(通常为发信地址)noreply@purechat.cn
SMTP_PASS必选SMTP 认证密码your-smtp-password
SMTP_FROM可选发件人地址,默认为 SMTP_USERPureChat <noreply@purechat.cn>

腾讯云邮件推送(推荐)

适用于 .cn 域名与国内投递,与 Vercel 部署兼容(使用 465/587 端口,勿用 25)。

控制台:腾讯云邮件推送

注意:2026-03-02 后新开通的个人认证账号不再支持 SMTP 发信,需完成企业认证或使用 API 发信。

第一步:控制台配置

  1. 开通邮件推送并完成企业认证
  2. 进入 邮件配置 → 发信域名 → 新建,添加发信域名 purechat.cn(使用根域,不要用 next.purechat.cn)。
  3. 进入 邮件配置 → 发信地址 → 新建,创建 noreply@purechat.cn
  4. 在发信地址操作栏点击 设置 SMTP 密码,保存专用密码(非腾讯云登录密码)。

第二步:DNS 验证

在域名 DNS 服务商处为 purechat.cn 添加记录(以控制台显示的值为准):

类型主机记录记录值(示例)
MX@mxbiz1.qq.com.
TXT (SPF)@v=spf1 include:qcloudmail.com ~all
TXT (DKIM)qcloud._domainkey控制台生成的唯一值
TXT (DMARC)_dmarcv=DMARC1; p=none

SPF 冲突:若 purechat.cn 已用于企业邮箱,需合并 SPF(同一域名只能有一条 SPF TXT),例如:

v=spf1 include:qcloudmail.com include:spf.mail.qq.com ~all

验证命令:

dig txt +short purechat.cn
dig txt +short qcloud._domainkey.purechat.cn
dig txt +short _dmarc.purechat.cn

DNS 同步后,在控制台点击 验证,状态变为「已验证」即可。

第三步:SMTP 接入点

地域SMTP_HOST
广州gz-smtp.qcloudmail.com
香港smtp.qcloudmail.com

在控制台 SMTP 服务地址 页确认你的账号应使用哪一个。

Vercel 推荐配置(465 + SSL):

EMAIL_SERVICE_PROVIDER=nodemailer
SMTP_HOST=gz-smtp.qcloudmail.com
SMTP_PORT=465
SMTP_SECURE=true
SMTP_USER=noreply@purechat.cn
SMTP_PASS=控制台设置的SMTP专用密码
SMTP_FROM=PureChat <noreply@purechat.cn>

587 + STARTTLS 备选

SMTP_PORT=587
SMTP_SECURE=false

第四步:Vercel 环境变量

在 Vercel Project Settings → Environment Variables → Production 配置:

APP_URL=https://next.purechat.cn
EMAIL_SERVICE_PROVIDER=nodemailer
SMTP_HOST=gz-smtp.qcloudmail.com
SMTP_PORT=465
SMTP_SECURE=true
SMTP_USER=noreply@purechat.cn
SMTP_PASS=你的SMTP专用密码
SMTP_FROM=PureChat <noreply@purechat.cn>

删除或留空 RESEND_API_KEYRESEND_FROM,避免误用 Resend。

APP_URL 必须设为生产域名 https://next.purechat.cn,否则认证邮件中的链接会指向 *.vercel.app 预览域。

本地开发请设 APP_URL=http://localhost:5174(与 SPA 同源;/api 经 Vite 代理到 Next),不要用 :3000。详见 环境变量 · APP_URL

变更环境变量后需重新 Deploy。

发信限制

  • 同一 AppId:约 20 封/秒
  • 同一发信人对同一收信人:约 10 封/小时

Resend

Resend 是一个现代邮件 API 服务,配置简单。

环境变量类型描述示例
EMAIL_SERVICE_PROVIDER必选设置为 resendresend
RESEND_API_KEY必选Resend API Keyre_xxxxxxxxxxxxxxxxxxxxxx
RESEND_FROM推荐发件人地址,需为 Resend 已验证域名下的邮箱noreply@your-domain.com

使用 Resend 前需先 验证发件域名,否则只能发送到自己的邮箱。

测试与验证

开发环境

复制 .env.example 中邮件相关变量到 .env.local,填入真实 SMTP_PASS 后启动 pnpm dev

访问 /dev/email-service

  1. Provider 选 Nodemailer
  2. 点击 Verify 验证 SMTP 连接
  3. 发送测试邮件

或通过 API:

curl -X POST http://localhost:3000/api/dev/email \
  -H "Content-Type: application/json" \
  -d '{"action":"verify","impl":"nodemailer"}'

邮箱验证

启用邮箱验证以确保用户拥有其注册的邮箱地址(默认关闭):

环境变量类型描述
AUTH_EMAIL_VERIFICATION可选设置为 1 以要求注册后进行邮箱验证
AUTH_EMAIL_VERIFICATION_MODE可选注册验证方式:otp(6 位验证码,默认)或 link(邮件链接)

邮箱验证需要上方已配置好的邮件服务(SMTP 或 Resend)。启用后,用户必须验证其邮箱地址才能登录。

魔法链接(免密)登录

启用魔法链接登录(依赖上方已配置好的邮件服务,默认关闭):

环境变量类型描述
AUTH_ENABLE_MAGIC_LINK可选设置为 1 以启用魔法链接登录(默认关闭)

本页内容

PURECHAT DOCS

Ask AI

询问 PureChat 文档

回答只依据当前公开文档,并附上可继续阅读的来源。