claude-code-remote-remake/docs/EMAIL_GUIDE.md

346 lines
7.6 KiB
Markdown
Raw Normal View History

# TaskPing 邮件功能使用指南
## 🌟 功能概述
TaskPing 现在支持邮件通知和远程命令执行功能,让您可以:
1. **📧 接收邮件通知** - 当 Claude Code 任务完成时,自动发送邮件通知
2. **🔄 远程命令执行** - 通过回复邮件来远程执行 Claude Code 命令
3. **🏠 真正的远程工作** - 即使不在电脑前,也能继续与 Claude Code 对话
## 🚀 快速开始
### 步骤 1: 配置邮件设置
```bash
# 启动配置管理器
node taskping.js config
# 选择 "3. 通知渠道"
# 然后选择 "2. 邮件通知"
```
### 步骤 2: 输入邮箱配置
以 Gmail 为例:
```
SMTP 主机: smtp.gmail.com
SMTP 端口: 587
使用 SSL/TLS: n (使用 STARTTLS)
SMTP 用户名: your-email@gmail.com
SMTP 密码: your-app-password # 需要使用应用密码
IMAP 主机: imap.gmail.com
IMAP 端口: 993
IMAP 使用 SSL: y
收件人邮箱: your-email@gmail.com
发件人显示名: TaskPing <your-email@gmail.com>
```
### 步骤 3: 测试邮件发送
配置完成后,选择测试邮件发送功能,您应该会收到一封测试邮件。
### 步骤 4: 启动命令中继服务
```bash
# 启动邮件命令中继服务
node taskping.js relay start
```
## 📋 详细配置指南
### Gmail 配置
1. **启用两步验证**
- 登录 Google 账户
- 进入"安全"设置
- 启用两步验证
2. **生成应用密码**
- 在 Google 账户安全设置中
- 选择"应用密码"
- 选择"邮件"和您的设备
- 复制生成的 16 位密码
3. **启用 IMAP**
- 登录 Gmail
- 进入设置 → 转发和POP/IMAP
- 启用 IMAP 访问
### Outlook/Hotmail 配置
```
SMTP 主机: smtp.live.com
SMTP 端口: 587
IMAP 主机: imap-mail.outlook.com
IMAP 端口: 993
```
### 其他邮箱提供商
| 提供商 | SMTP 主机 | SMTP 端口 | IMAP 主机 | IMAP 端口 |
|--------|-----------|-----------|-----------|-----------|
| QQ邮箱 | smtp.qq.com | 587 | imap.qq.com | 993 |
| 163邮箱 | smtp.163.com | 587 | imap.163.com | 993 |
| 126邮箱 | smtp.126.com | 587 | imap.126.com | 993 |
## 🔄 使用流程
### 1. 正常工作流程
```
1. 启动 Claude Code
2. 执行任务 (如: "帮我重构这个组件")
3. 📧 收到邮件通知: "任务完成"
4. 💬 回复邮件: "请添加单元测试"
5. ⚡ 命令自动在 Claude Code 中执行
```
### 2. 邮件通知示例
当 Claude Code 完成任务时,您会收到如下邮件:
```
主题: [TaskPing] Claude Code 任务完成 - MyProject
🎉 Claude Code 任务完成
项目: MyProject
时间: 2025-07-12 19:45:30
状态: 任务完成
消息: 任务已完成Claude正在等待下一步指令
💡 如何继续对话
要继续与 Claude Code 对话,请直接回复此邮件,在邮件正文中输入您的指令。
示例回复:
• "请继续优化代码"
• "生成单元测试"
• "解释这个函数的作用"
会话ID: 123e4567-e89b-12d3-a456-426614174000
🔒 安全提示: 请勿转发此邮件会话将在24小时后自动过期
```
### 3. 回复邮件执行命令
直接回复邮件,在正文中输入要执行的命令:
```
请添加错误处理和日志记录功能
```
系统会自动:
1. 识别邮件回复
2. 提取命令内容
3. 验证会话有效性
4. 在 Claude Code 中执行命令
## 🛠️ 管理命令
### 查看中继服务状态
```bash
node taskping.js relay status
```
输出示例:
```
📊 命令中继服务状态
✅ 邮件配置已启用
📧 SMTP: smtp.gmail.com:587
📥 IMAP: imap.gmail.com:993
📬 收件人: your-email@gmail.com
📋 命令队列: 3 个命令
最近的命令:
✅ abc123: 请添加错误处理功能...
⏳ def456: 生成单元测试...
⏸️ ghi789: 优化性能...
```
### 清理命令历史
```bash
node taskping.js relay cleanup
```
### 停止中继服务
在运行中继服务的终端中按 `Ctrl+C`
## 🔒 安全特性
### 会话管理
- **唯一会话ID**: 每个通知邮件包含唯一的 UUID
- **24小时过期**: 会话自动过期,防止滥用
- **命令限制**: 每个会话最多 10 个命令
### 内容安全
- **邮件验证**: 验证回复邮件来源
- **命令过滤**: 过滤危险命令
- **长度限制**: 命令长度限制在 1000 字符内
### 危险命令黑名单
系统会自动拒绝以下类型的命令:
- `rm -rf` (删除文件)
- `sudo` (提权操作)
- `curl | sh` (执行远程脚本)
- `eval` / `exec` (代码执行)
## 🚨 故障排除
### 无法发送邮件
**问题**: 邮件发送失败
**解决方案**:
1. 检查 SMTP 配置是否正确
2. 确认使用应用密码而非普通密码
3. 检查网络连接
4. 查看防火墙设置
```bash
# 测试邮件发送
node taskping.js config
# 选择通知渠道 → 邮件通知 → 测试
```
### 无法接收回复
**问题**: 回复邮件后命令不执行
**解决方案**:
1. 确认中继服务正在运行
2. 检查 IMAP 配置
3. 确认回复的是 TaskPing 邮件
4. 检查命令是否被安全过滤器拦截
```bash
# 检查中继服务状态
node taskping.js relay status
# 重启中继服务
node taskping.js relay start
```
### 会话过期
**问题**: 提示会话过期
**解决方案**:
- 会话在24小时后自动过期
- 需要等待新的任务完成通知
- 或手动发送测试通知
### Claude Code 进程检测失败
**问题**: 无法找到 Claude Code 进程
**解决方案**:
1. 确保 Claude Code 正在运行
2. 检查进程名称是否正确
3. 目前支持自动化输入的平台macOS
## 📱 高级用法
### 多项目管理
不同项目的通知邮件会包含项目名称,方便区分:
```
[TaskPing] Claude Code 任务完成 - Frontend-Project
[TaskPing] Claude Code 任务完成 - Backend-API
[TaskPing] Claude Code 任务完成 - Mobile-App
```
### 命令模板
常用命令模板:
```bash
# 代码优化
"请优化性能并添加注释"
# 测试生成
"为这个函数生成单元测试"
# 文档生成
"生成 API 文档"
# 代码审查
"审查代码并指出潜在问题"
# 重构建议
"建议如何重构这段代码"
```
### 批量操作
可以在一封回复邮件中包含多个步骤:
```
请按以下步骤处理:
1. 优化函数性能
2. 添加错误处理
3. 生成单元测试
4. 更新文档
```
## 🎯 最佳实践
### 1. 安全建议
- 不要在邮件中包含敏感信息
- 定期更换应用密码
- 不要转发 TaskPing 通知邮件
- 及时清理过期会话
### 2. 命令编写
- 使用清晰、具体的指令
- 避免过于复杂的命令
- 一次专注一个任务
- 使用自然语言,无需特殊格式
### 3. 工作流程
- 启动工作时开启中继服务
- 结束工作时关闭中继服务
- 定期查看中继状态
- 及时清理命令历史
## 🆘 常见问题
**Q: 邮件功能会影响现有的桌面通知吗?**
A: 不会。邮件通知和桌面通知是独立的,可以同时启用。
**Q: 可以配置多个邮箱吗?**
A: 目前支持一个邮箱配置,但可以发送给多个收件人(在配置中用逗号分隔)。
**Q: 支持哪些邮箱提供商?**
A: 支持所有标准的 SMTP/IMAP 邮箱服务,包括 Gmail、Outlook、QQ、163 等。
**Q: 命令执行失败怎么办?**
A: 系统会自动重试 3 次,如果仍然失败,会在状态中显示错误信息。
**Q: 如何确保数据安全?**
A: 所有邮件配置存储在本地,使用应用密码而非主密码,会话自动过期。
## 🎉 开始使用
现在您已经了解了 TaskPing 邮件功能的所有细节,可以开始配置和使用了:
```bash
# 1. 配置邮箱
node taskping.js config
# 2. 测试通知
node taskping.js test
# 3. 启动中继服务
node taskping.js relay start
# 4. 开始使用 Claude Code享受远程工作的便利
```
享受您的远程 AI 编程体验!🚀