Fearure:
- 增加收件箱功能(有BUG) - 增加已发送|草稿箱|发送历史 本地记录
This commit is contained in:
99
doc/001-feature-planning.md
Normal file
99
doc/001-feature-planning.md
Normal file
@@ -0,0 +1,99 @@
|
||||
# Pop 功能规划讨论
|
||||
|
||||
**日期**: 2026-04-09
|
||||
|
||||
## 需求概述
|
||||
|
||||
增加两个核心功能:
|
||||
1. **发送历史记录** - 使用 SQLite 存储已发送/失败的邮件
|
||||
2. **邮件接收功能** - 通过 IMAP 获取收件箱中未读邮件
|
||||
|
||||
## 详细设计
|
||||
|
||||
### 1. 发送历史记录
|
||||
|
||||
- 使用 SQLite (`history.db`) 存储
|
||||
- 字段:发件人、收件人、CC、BCC、主题、正文(纯文本/HTML)、附件、状态(已发送/草稿)、发送时间、交付方式
|
||||
- 发送成功 → 标记 "sent",发送失败 → 标记 "draft"
|
||||
|
||||
### 2. 邮件接收功能
|
||||
|
||||
- 使用 IMAP 协议连接邮箱
|
||||
- 仅获取 **7天内未读** 的邮件
|
||||
- 不下载完整内容到本地,每次从 IMAP 拉取最新数据(轻量版)
|
||||
- 支持多账户,合并展示
|
||||
|
||||
### 3. 收件箱看板 (Inbox UI)
|
||||
|
||||
- 新命令: `pop inbox`
|
||||
- 使用 `bubbles/list` 组件
|
||||
- 显示格式: `<来源> · <发件人> - <主题> <时间>`
|
||||
- 支持搜索/过滤 (输入 "163" 可过滤来源)
|
||||
|
||||
### 4. 配置扩展
|
||||
|
||||
```yaml
|
||||
accounts:
|
||||
- name: "工作邮箱"
|
||||
email: "user@163.com"
|
||||
imap:
|
||||
host: "imap.163.com"
|
||||
port: 993
|
||||
username: "user@163.com"
|
||||
password: "xxx"
|
||||
smtp:
|
||||
host: "smtp.163.com"
|
||||
port: 465
|
||||
username: "user@163.com"
|
||||
password: "xxx"
|
||||
encryption: "ssl"
|
||||
|
||||
# 兼容原有单账户配置
|
||||
from: "user@163.com"
|
||||
smtp:
|
||||
host: "smtp.163.com"
|
||||
...
|
||||
```
|
||||
|
||||
## 常见邮箱 IMAP 配置
|
||||
|
||||
| 运营商 | IMAP Host | Port |
|
||||
|--------|-----------|------|
|
||||
| 163 | imap.163.com | 993 |
|
||||
| QQ | imap.qq.com | 993 |
|
||||
| Gmail | imap.gmail.com | 993 |
|
||||
| Outlook | outlook.office365.com | 993 |
|
||||
|
||||
## 文件变更计划
|
||||
|
||||
### 新增文件
|
||||
- `history.go` - SQLite 操作
|
||||
- `imap.go` - IMAP 接收
|
||||
- `inbox.go` - 收件箱 TUI 入口
|
||||
- `inbox/model.go` - 收件箱 Model
|
||||
|
||||
### 修改文件
|
||||
- `config.go` - 支持多账户
|
||||
- `email.go` - 发送后记录历史
|
||||
- `main.go` - 新增 inbox/history 子命令
|
||||
|
||||
### 新增依赖
|
||||
- `github.com/mattn/go-sqlite3`
|
||||
- `github.com/mattn/go-imap`
|
||||
|
||||
## 命令行接口
|
||||
|
||||
```bash
|
||||
pop inbox # 打开收件箱
|
||||
pop history # 查看发送历史
|
||||
pop history --draft # 只看草稿
|
||||
```
|
||||
|
||||
## 待定问题
|
||||
|
||||
- [x] 发送历史存储哪些信息 - 完整信息
|
||||
- [x] 收件箱针对所有账户还是单一账户 - 合并收件箱
|
||||
- [x] 新功能是否修改现有 TUI - 独立命令
|
||||
- [x] 搜索功能 - 使用 list 组件内置 Filter
|
||||
- [x] 来源标识 - `<来源> · <主题>` 格式
|
||||
- [x] 是否本地存储已接收邮件 - 轻量版,不存储
|
||||
Reference in New Issue
Block a user