-
Notifications
You must be signed in to change notification settings - Fork 125
Open
Description
[任务] 实现系统邮件通知中心,并支持用户自定义通知类型配置
[任务分值] 30 分
[背景描述]
随着系统功能逐步完善(如构建、文档、权限、评论、CL 等),越来越多的重要事件需要通知用户,例如:
- 构建失败
- CL 被评论 / 被合并
- 文档权限变更
- 系统异常或告警
目前系统缺乏统一的邮件通知能力:
- 没有集中式的邮件发送模块
- 事件通知无法灵活配置
- 用户无法选择接收哪些类型的邮件
[需求描述]
一、目标
- 实现系统级邮件通知能力
- 支持用户配置邮件通知偏好
- 为不同类型事件提供可扩展的通知机制
二、功能需求
- 通知事件模型设计
定义通知事件类型,例如:
- 构建相关:
- 构建成功
- 构建失败
- CL 相关:
- 新评论
- 被合并
- 文档相关:
- 被提及
- 权限变更
- 系统类:
- 系统公告
- 账号安全提醒
事件类型应:
- 枚举化管理
- 可扩展
- 可在数据库中持久化
- 邮件发送基础能力
- 集成邮件发送服务(SMTP / 第三方邮件服务)
- 提供统一邮件发送模块:
- 模板化邮件内容
- 支持 HTML 格式
- 记录发送日志(成功 / 失败)
- 用户通知配置能力
每个用户可配置:
- 开启 / 关闭邮件通知
- 按事件类型选择是否接收
- 可选择:
- 实时通知
- 批量汇总通知(可选,后续扩展)
新增 API:
- 查询当前用户通知配置
- 更新通知配置
- 通知触发机制
在关键业务流程中:触发通知事件 → 通知中心 → 判断用户配置 → 发送邮件
通知逻辑应:
- 不阻塞主业务流程
- 支持异步发送(队列 / 任务机制)
[代码标准]
- 所有 PR 提交必须签署
Signed-off-by和 使用GPG签名,即提交代码时(使用git commit命令时)至少使用-s -S两个参数,参考 Contributing Guide; - 所有 PR 提交必须通过
GitHub Actions自动化测试,提交 PR 后请关注GitHub Actions结果; - 代码注释均需要使用英文;
[PR 提交地址] 提交到 mega 仓库的 main 分支 `` 目录;
[开发指导]
- 认领任务参考 r2cn 开源实习计划 - 任务认领与确认;
[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在 #p-meta 频道和导师交流。
- Quanyi Ma genedna@gmail.com
- Tianxing Ye yetianxing2014@gmail.com
[备注]
- 认领实习任务的同学,必须完成测试任务和注册流程,请参考: r2cn 开源实习计划 - 测试任务 和 r2cn 开源实习计划 - 学生注册与审核
Reactions are currently unavailable