add user creation and mail body APIs

This commit is contained in:
2026-04-02 21:27:16 +08:00
parent 91609d15aa
commit df9dd80bb3
3 changed files with 159 additions and 2 deletions

View File

@@ -12,6 +12,7 @@
- 已授予并管理员同意以下 Microsoft Graph Application Permissions:
- `Mail.Read`
- `User.Read.All`
- `User.ReadWrite.All`
## 配置
@@ -23,6 +24,7 @@ TENANT_ID=your-tenant-id
CLIENT_ID=your-client-id
CLIENT_SECRET=your-client-secret
MAILBOX_ADDRESS=
DEFAULT_DOMAIN=
ACCESS_PASSWORD=change-this-password
PORT=3000
```
@@ -30,6 +32,7 @@ PORT=3000
说明:
- `MAILBOX_ADDRESS` 为可选默认选中账号。页面首次加载完成后,如果能在租户中找到这个邮箱地址,会自动展示它的最新邮件。
- `DEFAULT_DOMAIN` 为创建随机用户时使用的域名。未填写时,程序会尝试从 `MAILBOX_ADDRESS` 提取域名。
- `ACCESS_PASSWORD` 为访问控制台所需的口令。设置后,用户必须先输入该密码才能打开页面和访问 API。
- 读取租户账号和邮件实际依赖的是 `TENANT_ID``CLIENT_ID``CLIENT_SECRET`
@@ -42,13 +45,15 @@ PORT=3000
| `CLIENT_SECRET` | 是 | 应用客户端密钥,用于应用身份认证 | Azure AD「证书和密码」 |
| `Mail.Read` | 是 | 读取邮箱内容所需的 Microsoft Graph 应用程序权限 | Azure AD「API 权限」 |
| `User.Read.All` | 是 | 列出租户成员账号所需的 Microsoft Graph 应用程序权限 | Azure AD「API 权限」 |
| `User.ReadWrite.All` | 是 | 创建随机用户所需的 Microsoft Graph 应用程序权限 | Azure AD「API 权限」 |
| `ACCESS_PASSWORD` | 可选 | 控制台访问密码,设置后访问页面前必须先登录 | 自定义 |
补充说明:
-个 Graph 权限都要选择「应用程序权限」,并完成管理员同意。
-个 Graph 权限都要选择「应用程序权限」,并完成管理员同意。
- 本项目采用 `client_credentials` 模式,不需要配置重定向 URI。
- 如果只配置 `Mail.Read`,页面可以读邮件,但无法列出所有账号;如果只配置 `User.Read.All`,页面可以列出账号,但无法读取邮件正文。
- 创建随机用户需要 `User.ReadWrite.All`,并且目标域名必须是租户可用域名。
## 运行
@@ -89,6 +94,10 @@ docker compose down
- 返回租户成员账号列表
- `GET /api/users/:userId/latest-email`
- 返回该账号收件箱最新一封邮件
- `GET /api/users/:userId/latest-email/body`
- 返回该账号收件箱最新一封邮件正文
- `POST /api/users/random`
- 自动创建一个随机用户名的新用户,并返回用户主体与临时密码
## 注意事项