SuperAPI AI 工具集

email-imap-fetch

办公与效率

查看项目

更新于 10-15 16:40

技能介绍

用途:监听一个或多个 IMAP 收件箱,在有新邮件时唤醒并获取未读邮件,把每封邮件转发到 OpenClaw webhooks,同时输出机器可读的 JSONL 供下游步骤使用。该技能严格保持在 stage-1 路由模式:只发送 snippet(纯文本预览)与结构化引用,绝不发送完整原始邮件正文,也不发送附件二进制或内容。

主要能力:用 IMAP IDLE 等待新邮件,每次唤醒后抓取未读消息;通过环境变量配置多个邮箱账户;用环境变量(idle 或 poll)严格控制 IDLE 支持,不做运行时探测;为每个账户执行 IDLE 周期;输出 type=status、type=message、type=error 等 JSONL 事件,message 含 account、mailbox、seq、uid、subject、from、to、date、message_id 等字段、snippet、attachment_count 与 attachment_manifest(仅摘要);邮件 webhook 内含 MAIL_REF_JSON 与 ATTACHMENT_MANIFEST_JSON 两个固定机器可读块,便于确定性提取派发信息。

使用方式:先配置账户与 OpenClaw webhook 环境变量(参考 references/env.md 与 assets/config.example.env),再用 python3 scripts/imap_idle_fetch.py check-config 校验配置。冒烟测试可运行:python3 scripts/imap_idle_fetch.py listen --cycles 1 --idle-seconds 120 --max-messages 10。持续运行(默认常驻模式):python3 scripts/imap_idle_fetch.py listen。常用参数包括 --cycles、--idle-seconds、--poll-seconds、--idle-mode、--max-messages、--mark-seen/--no-mark-seen、--snippet-chars、--connect-timeout、--retry-seconds;对应环境变量有 IMAP_CYCLES、IMAP_IDLE_MODE、IMAP_IDLE_SECONDS 等,webhook 相关有 OPENCLAW_WEBHOOKS_ENABLED、TOKEN、BASE_URL、MODE、ENDPOINT 等。

运行模型与限制:技能文件本地安装,但监听器不会自动启动。idle 模式仅在监听进程与 IMAP 连接存活期间接收推送;poll 模式按间隔休眠后抓取未读。进程退出会错过推送,但下次运行仍可通过 UNSEEN 抓取已有未读邮件。默认常驻模式(IMAP_CYCLES=0),默认 IDLE 模式为 poll(对不支持 IDLE 的服务器更安全)。生产环境的常开部署须在 systemd、launchd、supervisor 或同类守护进程管理器下运行,不要以绑定交互式 exec 会话的前台进程运行。错误处理方面:无效环境配置以退出码 2 结束;idle 模式不支持 IDLE 时给出明确错误并建议 IMAP_IDLE_MODE=poll;运行时失败以 type=error 输出;账户处理出错时命令以非零退出。

适用场景:需要把邮箱未读邮件纳入自动化路由或智能体流程、且只希望下游拿到预览与引用而非完整正文/附件的场景。其他收费、平台支持等信息暂未提供。