1. 页面概览

邮件设置页是 AIP 管理后台配置 SMTP 邮件发送服务的入口,路由 /admin/email,需管理员角色。它以 EMAIL_ 前缀的 key 读写系统设置(system_settings 表),覆盖启用开关、SMTP 服务器/端口、账号密码、发件人信息与加密方式等 9 项配置。页面顶部提供「运行状态」卡(配置/启用两态),底部提供「发送测试邮件」卡,用当前保存的 SMTP 配置验证连通性。

配置采用"整页表单 + 顶部保存"模式:一次「保存」把全部字段逐项 PUT 到设置表,修改后重启 AIP 生效。邮件服务是工作流 send_notification 节点 channel=email 通知渠道的底层实现,凭证齐全且未显式禁用时默认启用。

2. 访问入口

2.1 路由与菜单

path /admin/email、name EmailSettings、title 邮件设置;挂载在父路由 /admin(AdminLayout)下,侧边栏菜单项「邮件设置」。源码 action/web/src/views/EmailSettingsPage.vue(懒加载注册)。

2.2 认证与权限

该子路由 meta 显式 requiresAuth: true, requiresAdmin: true;后端 GET /email/statusPOST /email/testPUT /settings 均在 admin 组。请求经 aipClient.js 附带 aip_token

2.3 端口与 API 前缀

AIP 后端 18080,前缀 /aip-api(baseURL /aip-api/v1,Vite 代理重写为 /api/v1)。

3. 界面布局

邮件设置                                    [保存]
[操作结果提示 alert(可关闭)]
[提示:EMAIL_ 前缀配置项存入系统设置,修改后重启 AIP 生效]
运行状态:配置状态(已配置 SMTP 服务器+发件人/未配置) |
          启用状态(已启用/未启用)    [刷新状态]
配置表单:启用邮件服务(开关) | SMTP 服务器 | SMTP 端口 | SMTP 账号 |
          SMTP 密码/授权码 | 发件人邮箱 | 发件人名称 |
          STARTTLS(25/587)(开关) | SSL(465,TLS直连)(开关)
发送测试邮件:收件邮箱[____]  [发送测试邮件]

4. 交互元素

控件位置含义与作用
保存按钮页面头部逐项 PUT /settings(Promise.all 并行)保存全部字段,保存中禁用表单
刷新状态按钮运行状态卡重新请求 /email/status
启用邮件服务表单EMAIL_ENABLED 总开关,关闭后工作流 email 渠道不再发送
SMTP 服务器表单EMAIL_SERVER,如 smtp.qq.com / smtp.exmail.qq.com
SMTP 端口表单EMAIL_PORT:25(普通)/ 587(STARTTLS)/ 465(SSL/TLS 直连)
SMTP 账号 / 密码表单EMAIL_USERNAME/EMAIL_PASSWORD(密码框),授权码用服务商生成
发件人邮箱 / 名称表单EMAIL_FROM/EMAIL_FROM_NAME,邮件头显示的发件人信息
STARTTLS / SSL 开关表单EMAIL_STARTTLS(25/587)、EMAIL_SSL(465 直连)两个加密开关
发送测试邮件按钮测试卡POST /email/test body {to},发送中显示"发送中...",未填邮箱禁用

5. 后端关联

5.1 端点表

方法路径用途
GET/email/status返回邮件服务配置与可用状态:{enabled, configured, server, from, port}
PUT/settings逐字段 upsert,body {key, value, type, description}
POST/email/test{to} 发一封测试邮件验证连通性

5.2 请求与响应

GET /email/statusconfigured 由 server/username/password 三者齐全决定,enabled 取服务配置。 POST /email/test 成功返回 {"success": true, "to": ...};mailer 未配置或 to 为空返回 400。布尔字段存储为字符串 "true"/"false"

5.3 关键机制

6. 权限与安全

7. 常见问题与排错

问题 1:运行状态显示"未配置(需填 SMTP 服务器、账号、密码)"

问题 2:发送测试邮件报"邮件服务未配置"或失败

问题 3:已配置但启用状态为"未启用"

问题 4:工作流 email 通知节点直接失败

8. 已知缺陷与边界

说明
重启生效全部配置修改重启 AIP 后生效,无热更新
单发件箱支持单一 SMTP 发件账号,无多账号轮换
无收件人白名单测试邮件地址由管理员自由填写,无内置限制
布尔存字符串设置表以 "true"/"false" 文本存储
明文存储密码EMAIL_PASSWORD 明文存设置表,需保管好数据库权限