ClawSkills logoClawSkills

IMAP Email Reader

通过 IMAP(ProtonMail Bridge、Gmail 等)读取和管理电子邮件。检查新/未读消息、获取内容、搜索邮箱以及标记为已读/未读。适用于

介绍

# IMAP Email Reader

通过 IMAP 协议读取、搜索和管理邮件。支持 ProtonMail Bridge、Gmail IMAP 以及任何标准 IMAP 服务器。

## 快速开始

**检查新邮件:** ```bash node skills/imap-email/scripts/imap.js check ```

**获取特定邮件:** ```bash node skills/imap-email/scripts/imap.js fetch <uid> ```

**标记为已读:** ```bash node skills/imap-email/scripts/imap.js mark-read <uid> ```

**搜索邮箱:** ```bash node skills/imap-email/scripts/imap.js search --from "[email protected]" --unseen ```

## 配置

**快速设置 (ProtonMail Bridge):** ```bash cd skills/imap-email ./setup.sh ``` 设置助手将提示输入 Bridge 凭据并测试连接。

**手动设置:** 1. 在技能文件夹中将 `.env.example` 复制为 `.env` 2. 填写您的 IMAP 凭据 3. `.env` 文件会被 git 自动忽略

**环境变量:**

```bash IMAP_HOST=127.0.0.1 # Server hostname IMAP_PORT=1143 # Server port [email protected] IMAP_PASS=your_password IMAP_TLS=false # Use TLS/SSL connection IMAP_REJECT_UNAUTHORIZED=false # Set to false for self-signed certs (optional) IMAP_MAILBOX=INBOX # Default mailbox ```

**⚠️ 安全提示:** 切勿提交您的 `.env` 文件!它已被添加到 `.gitignore` 中以防意外。

**ProtonMail Bridge 设置:** - 安装并运行 ProtonMail Bridge - IMAP 地址使用 `127.0.0.1:1143` - 密码由 Bridge 生成(不是您的 ProtonMail 密码) - TLS:使用 `false`(Bridge 使用 STARTTLS) - `REJECT_UNAUTHORIZED`:设置为 `false`(Bridge 使用自签名证书)

**Gmail IMAP 设置:** - 主机:`imap.gmail.com` - 端口:`993` - TLS:`true` - 启用“允许不够安全的应用访问”或使用应用专用密码 - `REJECT_UNAUTHORIZED`:省略或设置为 `true`(默认值)

## 命令

### check 检查邮箱中的未读/新邮件。

```bash node scripts/imap.js check [--limit 10] [--mailbox INBOX] [--recent 2h] ```

选项: - `--limit <n>`:最大结果数(默认:10) - `--mailbox <name>`:要检查的邮箱(默认:INBOX) - `--recent <time>`:仅显示最近 X 时间内的邮件(例如:30m, 2h, 7d)

返回包含以下内容的邮件 JSON 数组: - uid, from, subject, date, snippet, flags

### fetch 通过 UID 获取完整的邮件内容。

```bash node scripts/imap.js fetch <uid> [--mailbox INBOX] ```

返回包含完整正文(text + HTML)的 JSON。

### search 使用过滤器搜索邮件。

```bash node scripts/imap.js search [options]

Options: --unseen Only unread messages --seen Only read messages --from <email> From address contains --subject <text> Subject contains --recent <time> From last X time (e.g., 30m, 2h, 7d) --since <date> After date (YYYY-MM-DD) --before <date> Before date (YYYY-MM-DD) --limit <n> Max results (default: 20) --mailbox <name> Mailbox to search (default: INBOX) ```

时间格式示例: - `30m` = 最近 30 分钟 - `2h` = 最近 2 小时 - `7d` = 最近 7 天

### mark-read / mark-unread 将邮件标记为已读或未读。

```bash node scripts/imap.js mark-read <uid> [uid2 uid3...] node scripts/imap.js mark-unread <uid> [uid2 uid3...] ```

### list-mailboxes 列出所有可用的邮箱/文件夹。

```bash node scripts/imap.js list-mailboxes ```

## Cron 集成

使用 Clawdbot cron 设置定期邮件检查:

```bash # Check email every 15 minutes, deliver to iMessage clawdbot cron add \ --name "email-check" \ --cron "*/15 * * * *" \ --session isolated \ --message "Check for new ProtonMail emails and summarize them" \ --deliver \ --channel imessage \ --to "+15085600825" ```

在隔离会话中,代理可以运行: ```bash node /Users/mike/clawd/skills/imap-email/scripts/imap.js check --limit 5 ```

## 工作流示例

**早晨邮件摘要:** 1. 运行 `check --limit 10 --recent 12h` 2. 总结过夜未读的邮件 3. 将摘要发送到首选频道

**检查来自特定发件人的最近邮件:** 1. 运行 `search --from "[email protected]" --recent 24h` 2. 如有需要,获取完整内容 3. 处理后标记为已读

**每小时紧急邮件检查:** 1. 运行 `search --recent 1h --unseen` 2. 筛选重要关键词 3. 提取行动项 4. 如紧急则发送通知

**每周摘要:** 1. 运行 `search --recent 7d --limit 20` 2. 总结活动 3. 生成周报

## 依赖项

**必需的包:** imap-simple, mailparser, dotenv

**安装:** ```bash cd skills/imap-email npm install ```

这将安装 `package.json` 中列出的所有依赖项。

## 安全说明

- 将凭据存储在 `.env` 中(添加到 `.gitignore`) - ProtonMail Bridge 密码不是您的账户密码 - Bridge 必须运行才能访问 ProtonMail IMAP - 建议为 Gmail 使用应用专用密码

## 故障排除

**连接超时:** - 验证 IMAP 服务器正在运行且可访问 - 检查主机/端口配置 - 使用以下命令测试:`telnet <host> <port>`

**身份验证失败:** - 验证用户名(通常是完整的电子邮件地址) - 检查密码是否正确 - 对于 ProtonMail Bridge:使用 Bridge 生成的密码,而不是账户密码 - 对于 Gmail:如果启用了 2FA,请使用应用专用密码

**TLS/SSL 错误:** - 将 `IMAP_TLS` 设置与服务器的匹配要求匹配(SSL 为 true,STARTTLS 为 false) - 对于自签名证书(例如 ProtonMail Bridge):设置 `IMAP_REJECT_UNAUTHORIZED=false` - 检查端口是否与 TLS 设置匹配(SSL 为 993,STARTTLS 为 143)

**结果为空:** - 验证邮箱名称(区分大小写) - 检查搜索条件 - 使用 `list-mailboxes` 列出邮箱

更多产品