好工具啊
首页 / 软件专题 / email-for-ai:专为 AI 设计的命令行邮件客户端

email-for-ai:专为 AI 设计的命令行邮件客户端

📅 2026年5月13日 👁️ 0 次阅读
#email#AI#CLI#工具

email-for-ai:专为 AI 设计的命令行邮件客户端

项目简介

email-for-ai 是一个基于 DDD 架构的命令行邮件客户端,专为 AI 工具友好设计。支持 IMAP/POP3 收件和 SMTP 发件,所有邮件数据存储在本地 SQLite 数据库中,支持 FTS5 全文搜索。

核心功能

📥 邮件收取

  • 支持 IMAPPOP3 协议
  • 本地 SQLite 存储所有邮件
  • Message-ID 去重,避免重复同步
  • MIME 头自动解码(Base64/Quoted-Printable)

📤 邮件发送

  • 支持 SMTP 协议(TLS/SSL)
  • 支持邮件撰写和发送

🔍 全文搜索

  • 基于 SQLite FTS5 的本地全文搜索
  • 支持关键词、发件人、时间范围搜索
  • JSON 输出格式,方便 AI 解析

🤖 AI 友好设计

  • JSON 输出格式:所有命令支持 -o json 参数
  • 结构化数据输出,便于 AI 工具调用和解析
  • 表格/JSON 双格式输出

🔔 Hook 机制

  • 新邮件到达时执行自定义脚本
  • 传入 JSON 数据,便于自动化处理
  • 支持消息通知、自动处理等场景

📅 正确日期显示

  • 显示邮件实际发送时间,而非同步时间

快速开始

安装

# 从 GitHub 下载
https://github.com/liuchenrang/email-for-ai/releases

# 或自行编译
git clone https://github.com/liuchenrang/email-for-ai.git
cd email-for-ai
go build -o bin/email ./cmd/email

添加邮箱账户

# 163邮箱示例(需要使用授权码)
./bin/email account add \
  --name "163邮箱" \
  --email "your@163.com" \
  --imap-host "imap.163.com" \
  --imap-port 993 \
  --imap-user "your@163.com" \
  --imap-pass "你的授权码" \
  --smtp-host "smtp.163.com" \
  --smtp-port 465 \
  --smtp-user "your@163.com" \
  --smtp-pass "你的授权码" \
  --pop3-host "pop.163.com" \
  --pop3-port 995 \
  --pop3-user "your@163.com" \
  --pop3-pass "你的授权码"

⚠️ 注意:163邮箱需要在网页版设置中开启「POP3/SMTP/IMAP」服务,获取授权码。

同步邮件

# 使用 POP3 同步(推荐,避免 Unsafe Login 问题)
./bin/email sync --protocol pop3 --limit 50

# 使用 IMAP 同步(支持文件夹)
./bin/email sync --protocol imap --limit 50

# JSON 格式输出
./bin/email sync --protocol pop3 --limit 50 -o json

查看邮件

# 列出邮件
./bin/email list

# 只显示未读
./bin/email list --unread

# JSON 格式
./bin/email list -o json

# 阅读邮件详情
./bin/email read <message-id>

# 原始邮件内容
./bin/email read <message-id> --raw

发送邮件

# 撰写并发送
./bin/email compose \
  --to "recipient@example.com" \
  --subject "测试邮件" \
  --body "这是邮件正文内容" \
| ./bin/email send

搜索邮件

# 关键词搜索
./bin/email search "报警"

# 按发件人搜索
./bin/email search --from "safe@service.netease.com"

# 按时间范围搜索
./bin/email search --since "2026-04-01"

# 组合搜索
./bin/email search "ecs" --from "Hangzhou" --since "2026-04-01" -o json

支持的邮箱

163 邮箱

--imap-host imap.163.com --imap-port 993
--smtp-host smtp.163.com --smtp-port 465
--pop3-host pop.163.com --pop3-port 995

💡 使用 POP3 协议可避免 IMAP 的 "Unsafe Login" 错误

QQ 邮箱

--imap-host imap.qq.com --imap-port 993
--smtp-host smtp.qq.com --smtp-port 465
--pop3-host pop.qq.com --pop3-port 995

Gmail

--imap-host imap.gmail.com --imap-port 993
--smtp-host smtp.gmail.com --smtp-port 587

Hook 配置

在配置文件 ~/.email/config.yaml 中设置:

hooks:
  on_new_email: "/path/to/script.sh"

新邮件到达时,脚本会收到 JSON 数据:

{
  "account_id": "acc_02e9d71c",
  "message_id": "msg_44e963ad",
  "subject": "ecs报警",
  "from": {"name": "Hangzhou", "email": "Hangzhou@yehwang.com"},
  "date": "2026-04-03T17:52:15+08:00",
  "has_attachments": false
}

AI 应用场景

email-for-ai 的 JSON 输出格式特别适合 AI 工具集成:

1. AI 邮件助手

  • 自动监控新邮件
  • 根据 Hook 触发 AI 分析
  • 自动分类、回复建议

2. 邮件数据分析

  • 导出邮件数据为 JSON
  • 使用 AI 进行内容分析
  • 生成统计报告

3. 自动化工作流

  • 新邮件触发脚本
  • 结合 AI API 处理邮件内容
  • 自动回复、转发、归档

4. 命令行集成

  • 在 Shell 脚本中调用
  • 管道方式处理数据
  • 与其他命令行工具配合

架构设计

项目采用领域驱动设计(DDD)架构:

internal/
├── domain/        # 领域层:聚合根(Message, Account)、值对象、领域服务
├── application/  # 应用层:应用服务(MailService, SyncService)
├── infrastructure/ # 基础设施层:仓储实现、IMAP/POP3/SMTP客户端
├── interface/    # 接口层:CLI命令
pkg/mime/         # MIME解码工具包

数据存储

  • 数据库:~/.email/data.db (SQLite)
  • 支持FTS5全文搜索
  • Message-ID去重,避免重复同步
  • MIME头自动解码

配置文件

默认路径:~/.email/config.yaml

database:
  path: ~/.email/data.db

sync:
  protocol: pop3  # 默认同步协议
  limit: 100      # 默认同步数量

display:
  format: table   # 默认显示格式

hooks:
  on_new_email: "/path/to/script.sh"  # 新邮件到达时执行的脚本

项目链接

下载地址


email-for-ai - 让邮件管理更智能,让 AI 集成更简单"