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

346 lines
7.6 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.

# 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 编程体验!🚀