跳转至

注册与邮件

当前注册策略

当前采用 复旦学邮人工审核 + 邀请码 + 邮箱验证码:

  1. 申请人用本人复旦学邮发送注册申请到 ynumerics_admin@163.com;
  2. 邮件正文至少包含姓名、预计毕业时间;
  3. 管理员审核后,在 Sub2API 后台生成邀请码并回复原邮件;
  4. 申请人使用同一学邮、邮箱验证码和邀请码完成注册;
  5. 注册完成后,管理员按成员策略分配默认订阅。

成员侧公开说明见:账号注册。

注册开关

系统设置中的建议值:

设置 当前建议 说明
开放注册 开启 用户需要自行进入注册页面
邮箱验证 开启 注册时必须验证学邮
邮箱域名白名单 *.fudan.edu.cn 仅允许复旦大学域名及其子域名邮箱
非白名单域名限量注册 关闭 当前不接受非白名单邮箱注册
优惠码 关闭 当前注册流程不使用优惠码
邀请码注册 开启 管理员审核后人工发放邀请码

还应开启人机验证

邮箱白名单和邀请码用于控制谁能完成注册,但不应当作为验证码发送接口的抗滥用措施。生产环境建议同时启用 Sub2API 的人机验证功能,并保持反向代理真实 IP 配置正确,避免验证码接口被批量调用。

管理员注册邮箱

当前专用邮箱:

ynumerics_admin@163.com

用途:

  • 接收成员的注册申请;
  • 人工回复邀请码;
  • 作为 YNumerics API 的 SMTP 发件邮箱,自动发送邮箱验证码等事务邮件。

不要在公开文档中记录该邮箱的登录密码、SMTP 客户端授权码、恢复信息或二次验证凭据。

163 SMTP 配置

先登录 ynumerics_admin@163.com 的网易邮箱网页端,在邮箱设置中开启 SMTP/客户端服务并生成客户端授权码/授权密码。后台的“SMTP 密码”应填写这个客户端授权码,不要填写网页邮箱登录密码。

然后进入 Sub2API:系统设置 → 邮件,填写:

字段 当前值
SMTP 主机 smtp.163.com
SMTP 端口 465
SMTP 用户名 ynumerics_admin@163.com
SMTP 密码 163 邮箱客户端授权码(绝不写入文档)
发件人邮箱 ynumerics_admin@163.com
发件人名称 YNumerics API
使用 TLS 开启

从 QQ SMTP 切换到 163 时不要把密码留空

后台提示“密码已配置,留空以保留当前值”。如果原先保存的是 QQ 邮箱 SMTP 授权码,仅修改主机和用户名、却把密码框留空,就会继续保留旧 QQ 授权码,163 SMTP 鉴权会失败。切换本次配置时必须重新填写 163 的客户端授权码并保存。

当前生产版本使用 TLS 开启时会按隐式 TLS(465 语义)连接;因此 smtp.163.com:465 + TLS 开启 与当前配置匹配。

配置后如何让验证码自动发送

不需要另外写脚本。 SMTP 配好后,Sub2API 已自带注册验证码生成、缓存、校验和发信流程。

按以下顺序验收:

  1. 保存 SMTP 设置;
  2. 点击后台的 测试连接;
  3. 使用 发送测试邮件,先发到一个实际可收信的复旦学邮;
  4. 确认发件人显示为 YNumerics API <ynumerics_admin@163.com>;
  5. 打开无痕窗口进入 YNumerics API 注册页;
  6. 输入测试学邮并点击发送验证码;
  7. 确认学邮收到自动验证码;
  8. 输入验证码和测试邀请码,完整走通一次注册;
  9. 删除测试账号 / 测试邀请码,或按实际成员流程继续配置订阅。

当前平台验证码是 6 位数字,有效期 15 分钟,同一邮箱重新发送存在 1 分钟冷却。

邀请码发放流程

收到学邮申请后:

  1. 检查发件人确实使用复旦学邮;
  2. 检查邮件包含姓名和预计毕业时间;
  3. 在管理员后台进入 兑换码;
  4. 新建类型为 邀请码 的兑换码;
  5. 每位申请人单独生成并记录对应邀请码;
  6. 直接回复申请人的原邮件,把邀请码发给本人;
  7. 注册完成后再按 用户、订阅与额度 分配默认学生订阅。

建议管理员回复模板:

你好,注册申请已审核通过。

YNumerics API 注册邀请码:<邀请码>

请使用本次来信的复旦学邮在 https://api.ynumerics.top 注册,
注册时同时完成邮箱验证码验证并填写上述邀请码。
请勿转发邀请码。

服务器网络测试

如果后台测试连接失败,先从服务器确认 465 端口和 TLS 握手:

nc -vz smtp.163.com 465
openssl s_client -connect smtp.163.com:465 -servername smtp.163.com -brief

日志排障

cd /opt/sub2api
sudo docker compose logs --since=10m sub2api \
  | grep -iE 'smtp|mail|email|verify|tls|auth|captcha|error'

常见情况:

现象 优先检查
测试连接失败 smtp.163.com:465 网络、TLS 开关
连接成功但鉴权失败 SMTP 用户名是否完整、是否误用了网页登录密码、是否仍保留旧 QQ 授权码
测试邮件成功但注册验证码不发 开放注册、邮箱验证、人机验证、邮箱白名单、Sub2API 日志
学邮收不到但后台显示已发送 垃圾邮件目录、学校邮箱过滤策略、163 发件箱 / 退信
验证码可以收到但无法注册 邀请码是否有效、注册邮箱是否符合 *.fudan.edu.cn