claude-code-remote-remake/HOW_TO_USE_EMAIL_REPLY.md

3.6 KiB
Raw Blame History

TaskPing 邮件回复功能使用指南

📋 完整使用流程

步骤1启动邮件监听服务

在终端1中运行

cd /Users/jessytsui/dev/TaskPing
npm run relay:pty

这会启动邮件监听服务,监听 noreply@example.com 收到的回复邮件。

步骤2启动Claude Code并集成TaskPing

在终端2中运行

# 启动Claude Code
claude

# 在Claude Code中使用TaskPing发送邮件通知
# 例如:当任务完成时会自动发送邮件

步骤3配置Claude Code钩子如果还没配置

在Claude Code中运行

# 查看当前钩子配置
cat ~/.config/claude-code/settings/hooks.json

# 如果没有配置需要设置TaskPing钩子
# 复制TaskPing的钩子配置文件

📧 邮件回复测试流程

方法1手动测试发送邮件

# 在TaskPing目录中运行
node test-smtp-token.js

这会发送一封测试邮件到 user@example.com邮件主题包含Token格式 [TaskPing #XXXXXXXX] Claude Code 任务完成 - TaskPing-Token-Test

方法2实际集成测试

  1. 在Claude Code中执行一个任务
  2. 任务完成后TaskPing会自动发送邮件通知
  3. 邮件会发送到配置的邮箱(user@example.com

💌 如何回复邮件发送命令

收到邮件后:

  1. user@example.com 收到邮件,主题如:

    [TaskPing #A53PXR7F] Claude Code 任务完成 - 项目名
    
  2. 直接回复邮件,在正文中输入命令:

    继续优化代码
    

    生成单元测试
    

    解释这个函数的作用
    
  3. 发送回复后,邮件监听服务会:

    • 收到回复邮件
    • 提取TokenA53PXR7F
    • 找到对应的PTY会话
    • 将命令注入到Claude Code CLI

🔧 配置文件说明

.env 配置

# 发件配置(飞书邮箱)
SMTP_HOST=smtp.feishu.cn
SMTP_USER=noreply@example.com
SMTP_PASS=kKgS3tNReRTL3RQC

# 收件配置(飞书邮箱)  
IMAP_HOST=imap.feishu.cn
IMAP_USER=noreply@example.com
IMAP_PASS=kKgS3tNReRTL3RQC

# 用户通知邮箱
EMAIL_TO=user@example.com

# 允许发送命令的邮箱(安全白名单)
ALLOWED_SENDERS=user@example.com

🐛 故障排除

1. 收不到邮件回复

检查:

  • 邮件监听服务是否正在运行(npm run relay:pty
  • 是否从白名单邮箱(user@example.com)发送回复
  • 邮件主题是否包含正确的Token格式

2. 命令没有注入到Claude Code

检查:

  • Claude Code是否还在运行
  • PTY会话是否还有效Token未过期
  • 检查服务日志输出

3. 查看调试日志

# 查看详细的邮件监听日志
DEBUG=true npm run relay:pty

📱 支持的邮件客户端

用户可以从任意邮箱回复到 noreply@example.com

  • Gmail 网页版/客户端
  • 手机Gmail APP
  • Apple Mail
  • Outlook
  • QQ邮箱
  • 163邮箱
  • 任何支持SMTP的邮箱

🔒 安全特性

  1. Token验证每个会话有唯一Token防止误操作
  2. 发件人白名单:只有授权邮箱可以发送命令
  3. 会话过期Token有24小时有效期
  4. 命令过滤:自动过滤潜在危险命令

🎯 实际使用场景

场景1长时间构建

1. 在Claude Code中启动项目构建
2. 离开电脑,在手机收到构建完成邮件
3. 手机直接回复:"继续部署到生产环境"
4. 回到电脑时部署已完成

场景2代码审查

1. Claude Code完成代码生成
2. 收到邮件通知
3. 回复:"请添加单元测试和文档"
4. Claude自动生成测试和文档

这样就可以实现真正的远程控制Claude Code了