name: 邮件工具 description: 通过IMAP/SMTP安全访问Gmail,并使用1Password存储凭证。支持列出、阅读、搜索、发送和回复邮件,同时保持适当的线程和附件。
邮件工具
通过IMAP/SMTP安全访问Gmail,并使用1Password存储凭证。支持列出、阅读、搜索、发送和回复邮件,同时保持适当的线程和附件。
使用场景
- 阅读和管理Gmail邮件
- 发送带附件的邮件
- 在保持线程连续性的同时回复邮件
- 使用IMAP查询搜索邮件
前提条件
1Password设置
创建一个1Password项目,包含:
- 项目名称:任何描述性名称(例如,“工作Gmail”,“个人Gmail”)
- 用户名字段:您的Gmail地址(例如,
user@gmail.com) - 密码字段:Gmail应用密码(不是您的常规密码)
获取Gmail应用密码
- 访问Google账户安全
- 如果尚未启用,启用两步验证
- 转到“应用密码”(在“两步验证”下)
- 为“邮件”生成一个新的应用密码
- 将16位密码复制到您的1Password项目
MCP服务器工具
插件提供以下MCP工具:
list_emails
列出账户中的近期邮件。
account: "工作Gmail" # 1Password项目名称
folder: "INBOX" # 可选,默认:INBOX
limit: 10 # 可选,默认:10
read_email
阅读完整的邮件内容,包括线程头。
account: "工作Gmail"
email_id: "46" # 来自list_emails
folder: "INBOX" # 可选
send_email
发送新邮件,可选附件。
account: "工作Gmail"
to: "recipient@example.com"
subject: "Hello"
body: "邮件内容在这里"
cc: "cc@example.com" # 可选
bcc: "bcc@example.com" # 可选
attachments: ["/path/to/file.pdf"] # 可选
reply_email
回复邮件,保持线程。
account: "工作Gmail"
email_id: "46" # 回复的邮件
body: "感谢您的邮件!"
attachments: ["/path/to/doc.pdf"] # 可选
folder: "INBOX" # 可选
search_emails
使用IMAP语法搜索。
account: "工作Gmail"
query: "FROM sender@example.com" # 或者 "SUBJECT hello", "UNSEEN", 等等。
folder: "INBOX" # 可选
limit: 10 # 可选
独立脚本
对于不使用MCP的CLI,使用scripts/中的脚本:
列出邮件
./scripts/gmail_list.py "工作Gmail" --limit 20
./scripts/gmail_list.py "工作Gmail" --json # JSON输出
阅读邮件
./scripts/gmail_read.py "工作Gmail" "46"
./scripts/gmail_read.py "工作Gmail" "46" --json
回复邮件
# 预览(不发送)
./scripts/gmail_reply.py "工作Gmail" "46" \
--body "感谢您的邮件。" \
--attachment ~/document.pdf \
--dry-run
# 发送回复
./scripts/gmail_reply.py "工作Gmail" "46" \
--body "感谢您的邮件。" \
--attachment ~/document.pdf
邮件线程
当使用reply_email时,工具自动:
- 提取原始邮件的
Message-ID和References头 - 将
In-Reply-To设置为原始Message-ID - 构建适当的
References头链 - 如果主题中没有
RE:前缀,则添加 - 发送到发件人的电子邮件地址
这确保了在所有电子邮件客户端中回复都出现在同一个线程中。
常见的IMAP搜索查询
| 查询 | 描述 |
|---|---|
ALL |
所有消息 |
UNSEEN |
未读消息 |
FROM "john" |
来自包含"john"的发件人 |
SUBJECT "meeting" |
主题包含"meeting" |
SINCE "01-Jan-2024" |
自日期以来的消息 |
BEFORE "01-Jan-2024" |
日期之前的消息 |
BODY "keyword" |
正文包含"keyword" |
使用括号组合:(FROM "john" SUBJECT "meeting")
故障排除
“1Password项目未找到”
验证您使用的1Password项目名称是否完全匹配。
“认证失败”
- 确保您使用的是应用密码,而不是您的常规Gmail密码
- 验证您的Google账户已启用2FA
- 检查应用密码是否未被撤销
“IMAP未启用”
在Gmail设置→转发和POP/IMAP→启用IMAP