Files
mailgo/.workbuddy/memory/2026-06-01.md
T
2026-06-01 19:46:51 +08:00

38 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-06-01 MailGo 项目开发完成
## 完成内容
- 完整Go邮件系统 MailGo 开发,通过2轮QA验证
- 核心组件: SMTP(go-smtp) + IMAP(go-imap v1) + POP3(手写TCP) + Web(Gin)
- Web功能: 登录认证、收件箱、草稿箱、发件箱、撰写邮件(含附件)、设置(修改密码)、管理后台(域名/用户/DNS提示)
- 模板架构从base继承模式经3轮迭代重构为自包含+子模板模式
- 默认管理员: admin@example.com / admin
- Windows测试路径: ./win/etc/mail_go + ./win/srv/mail_go
## QA结果
- Round 1: 12/15 通过,3项失败(/drafts和/settings路由缺失,/admin路径误测)
- Round 2: 12/12 全部通过,修复后回归验证完成
## 关键修复
- SMTP ListenAndServeTLS 签名问题 → 创建独立TLS Server实例
- IMAP v2 beta API不稳定 → 切换v1
- 模板 {{template .VarName .}} 不支持 → 重构为自包含模式
- 补充 /drafts、/settings 路由及密码修改功能
## 增强需求实现(v2
- DKIM私钥自动生成: 域名创建时自动生成RSA 2048密钥对,DNS提示页显示DKIM TXT记录
- 域名编辑: /admin/domains/:id/edit,可修改端口/TLS/重新生成DKIM
- 附件配额限制: 上传时检查用户QuotaBytes vs UsedBytesSMTP收信也更新配额
- 富文本编辑器: compose页集成Quill.js(CDN),支持HTML邮件(multipart/alternative)
- OAuth2/LDAP认证: 默认关闭,配置文件控制开关;internal/auth/包(provider+ldap+oauth2)
- 新增依赖: github.com/go-ldap/ldap/v3, golang.org/x/oauth2
- go build + go vet 通过
## 增强需求实现(v3
- Banlist系统: BanEntry模型+BanStore+BanMiddleware,登录失败N次ban IPadmin /admin/bans 查看/解ban
- 管理仪表盘增强: 邮件分布(INBOX/Sent/Drafts/Trash计数+大小)、今日/7日收发统计、ban计数
- 全量邮件查看: /admin/mails 支持文件夹筛选+分页,MailStore新增ListAll/ListAllByFolder
- Config新增: Ban BanConfig (max_fail_attempts默认5, ban_duration_min默认30分钟)
- 新建5文件: ban_store.go, ban.go中间件, banned.html, admin/bans.html, admin/mails.html
- 修改13文件: models.go, db.go, config.go, stores.go, mail_store.go, auth.go, admin.go, server.go, main.go + 5个admin模板
- go build + go vet 通过