refactor(frontend): unify mailbox terminology

Closes #1129
This commit is contained in:
Dream Hunter
2026-08-31 22:36:08 +08:00
committed by GitHub
parent 70206c61ef
commit 5fd181d9c0
24 changed files with 319 additions and 272 deletions
@@ -150,19 +150,20 @@ cd worker
wrangler secret put SMTP_CONFIG
```
## 用户账号、邮箱地址与发信权限
## 用户账号、邮箱、邮箱地址与发信权限
三个概念相互关联,但不是同一个对象:
概念相互关联,但不是同一个对象:
| 概念 | 说明 |
|------|------|
| 用户账号 | 用于登录用户中心,可绑定和管理多个邮箱地址;用户账号的登录邮箱本身不等于用于收发信的邮箱地址 |
| 邮箱地址 | 实际收信和发信的身份,例如 `name@example.com`;前端首页当前选中的地址由该地址的凭证(Address JWT)认证 |
| 用户账号 | 用于登录用户中心,可绑定和管理多个邮箱;用户账号的用户邮箱本身不等于用于收发信的邮箱地址 |
| 邮箱 | 包含收件箱、发件箱、发信能力和邮箱设置的业务对象 |
| 邮箱地址 | 标识邮箱的具体值,例如 `name@example.com`;当前邮箱由该地址的 Address JWT 认证 |
| 发信权限与额度 | `address_sender` 中的权限和额度以**邮箱地址**为单位独立管理;`NO_LIMIT_SEND_ROLE` 配置的用户角色可以绕过地址额度检查 |
因此,同一用户账号绑定的多个邮箱地址不会共享发信权限或余额。为某个地址申请发信权限时:
1. 先在前端切换到需要发信的邮箱地址
1. 先在前端切换到需要发信的邮箱
2. 打开「发送邮件」页
3. 点击「申请权限」
@@ -175,7 +176,7 @@ wrangler secret put SMTP_CONFIG
1. **自动初始化默认额度**:当 `DEFAULT_SEND_BALANCE > 0` 时,用户打开前端发信页或第一次调用发信接口时,系统会自动为该地址初始化默认额度
2. **手动申请**:如果 `DEFAULT_SEND_BALANCE = 0`,使用者可以在前端切换到目标邮箱地址并点击「申请权限」,为当前地址创建待管理员处理的发信权限记录
3. **无限制发送**:以下方式可以跳过余额检查:
- admin 后台将地址加入「无限制发送地址列表」
-管理后台将邮箱地址加入「无限制发送地址列表」
- 配置 `NO_LIMIT_SEND_ROLE` 环境变量,指定可以无限发送的用户角色
> [!NOTE]
@@ -193,4 +194,4 @@ wrangler secret put SMTP_CONFIG
适合未完成 Email Routing onboarding 的域名,或 Workers 免费版。
只有收件人在 admin 后台的 `已验证地址列表` 中时,才会通过 `SEND_MAIL` binding 发信。
只有收件人在管理后台的 `已验证地址列表` 中时,才会通过 `SEND_MAIL` binding 发信。
+13 -13
View File
@@ -1,29 +1,29 @@
# Admin 控制
# 管理后
> [!NOTE]
> 需要配置 `ADMIN_PASSWORDS` 或者 `ADMIN_USER_ROLE` 才可以访问 admin 控制
> admin 角色配置, 如果用户角色等于 ADMIN_USER_ROLE 则可以访问 admin 控制
> 需要配置 `ADMIN_PASSWORDS` 或者 `ADMIN_USER_ROLE` 才可以访问管理后
> 管理员角色配置如果用户角色等于 `ADMIN_USER_ROLE`则可以访问管理后
部署前端应用之后,点击 左上角 logo 5 次 或者访问 `/admin` 路径即可进入管理控制台。
部署前端应用之后,点击左上角 logo 5 次访问 `/admin` 路径即可进入管理台。
需要在后端配置 `ADMIN_PASSWORDS` 或者当前用户角色为 `ADMIN_USER_ROLE`,否则不允许访问控制台。
需要在后端配置 `ADMIN_PASSWORDS` 或者当前用户角色为 `ADMIN_USER_ROLE`,否则不允许访问管理后台。
## 管理口令和用户账号的区别
## 管理员密码和用户账号的区别
`ADMIN_PASSWORDS` Admin 控制台的管理口令,不是站点用户账号,也不对应某个邮箱地址。使用管理口令登录后可以进入后台,但它本身不能收信。
`ADMIN_PASSWORDS`管理后台的管理员密码,不是站点用户账号,也不对应某个邮箱地址。使用管理员密码登录后可以进入后台,但它本身不能收信。
站点用户账号存储在 `users` 表中,需要通过用户登录体系进入;用户是否能收信取决于是否创建或绑定了邮箱地址。即使你创建了一个邮箱为 `admin@example.com` 或用户名看起来像 `admin` 的普通用户,它也不会自动获得后台权限。
站点用户账号存储在 `users` 表中,需要通过用户登录体系进入;用户是否能收信取决于是否创建或绑定了邮箱。即使你创建了一个用户邮箱为 `admin@example.com` 或用户名看起来像 `admin` 的普通用户,它也不会自动获得后台权限。
如果希望某个用户也能进入 Admin 控制台,请配置 `ADMIN_USER_ROLE`,并在用户管理中给该用户设置相同的角色。
如果希望某个用户也能进入管理后台,请配置 `ADMIN_USER_ROLE`,并在用户管理中给该用户设置相同的角色。
![admin](/feature/admin.png)
## 账号列表排序
## 邮箱列表排序
管理后台的账号标签页支持按列排序,可点击表头对以下列进行升序/降序排列:
管理后台的「邮箱管理 → 邮箱列表」支持按列排序,可点击表头进行升序/降序排列:
- ID
- 名称
- 邮箱地址
- 创建时间
- 更新时间
- 邮件数量
@@ -37,7 +37,7 @@
## IP 黑名单 / 白名单
Admin 控制台 → **IP 黑名单设置** 页面可配置访问控制,作用于以下接口:创建邮箱地址、发送邮件、外部发送邮件 API、用户注册、验证码校验。
管理后台的 **IP 黑名单设置** 页面可配置访问控制,作用于以下接口:创建邮箱地址、发送邮件、外部发送邮件 API、用户注册、验证码校验。
### IP 白名单(严格模式)