38 lines
2.2 KiB
Markdown
38 lines
2.2 KiB
Markdown
# 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 UsedBytes,SMTP收信也更新配额
|
||
- 富文本编辑器: 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 IP,admin /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 通过
|