Gmail自动化Skill gmail-automation

这个技能通过Rube MCP实现Gmail任务的自动化,涵盖发送邮件、回复线程、搜索邮件、管理标签、处理草稿和附件等操作。关键词:Gmail自动化,邮件管理,Rube MCP,自动化工具,邮件工作流,API集成。

DevOps 0 次安装 0 次浏览 更新于 3/16/2026

名称: gmail-automation 描述: “通过Rube MCP(Composio)自动化Gmail任务:发送/回复、搜索、标签、草稿、附件。始终先搜索工具以获取当前模式。” 要求: mcp: [rube]

通过Rube MCP实现Gmail自动化

通过Composio的Gmail工具包,经由Rube MCP自动化Gmail操作。

先决条件

  • Rube MCP必须已连接(RUBE_SEARCH_TOOLS可用)
  • 通过RUBE_MANAGE_CONNECTIONS与工具包gmail建立活跃的Gmail连接
  • 始终先调用RUBE_SEARCH_TOOLS以获取当前工具模式

设置

获取Rube MCP:在客户端配置中添加https://rube.app/mcp作为MCP服务器。无需API密钥——只需添加端点即可工作。

  1. 通过确认RUBE_SEARCH_TOOLS响应,验证Rube MCP可用
  2. 使用工具包gmail调用RUBE_MANAGE_CONNECTIONS
  3. 如果连接不活跃,按照返回的认证链接完成Google OAuth
  4. 在运行任何工作流前,确认连接状态显示为活跃

核心工作流

1. 发送邮件

使用时机:用户希望撰写并发送新邮件

工具序列

  1. GMAIL_SEARCH_PEOPLE - 将联系人名称解析为电子邮件地址 [可选]
  2. GMAIL_SEND_EMAIL - 发送邮件 [必需]

关键参数

  • recipient_email:电子邮件地址或’self’表示自己
  • subject:邮件主题行
  • body:邮件内容(纯文本或HTML)
  • is_html:如果正文包含HTML标记,必须设为true
  • cc/bcc:电子邮件地址数组
  • attachment:带有之前下载的{s3key, mimetype, name}的对象

陷阱

  • 至少需要recipient_emailccbcc中的一个
  • 至少需要subjectbody中的一个
  • 附件mimetype必须包含’/‘(例如,‘application/pdf’,而非’pdf’)
  • 总消息大小限制约25MB(base64编码后)
  • 仅对Gmail“以…发送邮件”设置中已验证的别名使用from_email

2. 回复线程

使用时机:用户希望回复现有邮件对话

工具序列

  1. GMAIL_FETCH_EMAILS - 查找要回复的邮件/线程 [先决条件]
  2. GMAIL_REPLY_TO_THREAD - 在线程内发送回复 [必需]

关键参数

  • thread_id:来自FETCH_EMAILS的十六进制字符串(例如,‘169eefc8138e68ca’)
  • message_body:回复内容
  • recipient_email:回复收件人
  • is_html:设为true用于HTML内容

陷阱

  • thread_id必须是十六进制字符串;像’msg-f:'这样的前缀会自动去除
  • 不支持旧版Gmail网页UI ID(例如,‘FMfcgz…’)
  • 主题从原始线程继承;设置主题会创建新线程
  • 不要包含主题参数以保持在线程内

3. 搜索和过滤邮件

使用时机:用户希望通过发件人、主题、日期、标签等查找特定邮件

工具序列

  1. GMAIL_FETCH_EMAILS - 使用Gmail查询语法搜索 [必需]
  2. GMAIL_FETCH_MESSAGE_BY_MESSAGE_ID - 获取选定结果的完整消息详情 [可选]

关键参数

  • query:Gmail搜索语法(from:, to:, subject:, is:unread, has:attachment, after:YYYY/MM/DD, before:YYYY/MM/DD)
  • max_results:每页1-500条消息
  • label_ids:系统ID如’INBOX’、‘UNREAD’
  • include_payload:设为true以获取完整消息内容
  • ids_only:设为true仅获取消息ID
  • page_token:用于分页(来自nextPageToken

陷阱

  • 每页最多返回约500条;通过page_token跟随nextPageToken直到不存在
  • resultSizeEstimate是近似值,非精确计数
  • 使用’is:'表示状态(is:unread, is:snoozed, is:starred)
  • 仅对用户创建的标签使用’label:’
  • 常见错误:‘label:snoozed’是错误的——应使用’is:snoozed’
  • include_payload=true在广泛搜索时会产生巨大响应;默认使用元数据
  • 自定义标签需要标签ID(例如,‘Label_123’),而非标签名称

4. 管理标签

使用时机:用户希望创建、修改或组织标签

工具序列

  1. GMAIL_LIST_LABELS - 列出所有标签以查找ID和检测冲突 [必需]
  2. GMAIL_CREATE_LABEL - 创建新标签 [可选]
  3. GMAIL_PATCH_LABEL - 重命名或更改标签颜色/可见性 [可选]
  4. GMAIL_DELETE_LABEL - 删除用户创建的标签(不可逆) [可选]

关键参数

  • label_name:最多225字符,无逗号,使用’/'表示嵌套(例如,‘Work/Projects’)
  • background_color/text_color:来自Gmail预定义调色板的十六进制值
  • id:用于PATCH/DELETE操作的标签ID

陷阱

  • 如果名称为空、重复或保留(INBOX、SPAM、CATEGORY_*),会返回400/409错误
  • 颜色规范必须使用Gmail预定义的102种十六进制值调色板
  • DELETE是永久的,并从所有消息中移除标签
  • 无法删除系统标签(INBOX、SENT、DRAFT等)

5. 在消息上应用/移除标签

使用时机:用户希望标记、归档或将邮件标记为已读/未读

工具序列

  1. GMAIL_LIST_LABELS - 获取自定义标签的ID [先决条件]
  2. GMAIL_FETCH_EMAILS - 查找目标消息 [先决条件]
  3. GMAIL_BATCH_MODIFY_MESSAGES - 批量添加/移除标签(最多1000条消息) [必需]
  4. GMAIL_ADD_LABEL_TO_EMAIL - 单条消息标签更改 [备用]

关键参数

  • messageIds:消息ID数组(最多1000)
  • addLabelIds:要添加的标签ID数组
  • removeLabelIds:要移除的标签ID数组
  • message_id:用于单次操作的15-16字符十六进制字符串

陷阱

  • BATCH调用最多1000个messageIds;较大集合需分块处理
  • 使用’CATEGORY_UPDATES’而非’UPDATES’;类别标签需要完整前缀
  • SENT、DRAFT、CHAT是固定的——无法添加/移除
  • 标记为已读:移除’UNREAD’。归档:移除’INBOX’
  • message_id必须是15-16字符十六进制字符串,非UUID或网页UI ID

6. 处理草稿和附件

使用时机:用户希望创建、编辑或发送邮件草稿,可能带有附件

工具序列

  1. GMAIL_CREATE_EMAIL_DRAFT - 创建新草稿 [必需]
  2. GMAIL_UPDATE_DRAFT - 编辑草稿内容 [可选]
  3. GMAIL_LIST_DRAFTS - 列出现有草稿 [可选]
  4. GMAIL_SEND_DRAFT - 发送草稿(需要明确的用户批准) [可选]
  5. GMAIL_GET_ATTACHMENT - 从现有消息下载附件 [可选]

关键参数

  • recipient_email:草稿收件人
  • subject:草稿主题(对于回复草稿省略以保持在线程内)
  • body:草稿内容
  • is_html:设为true用于HTML内容
  • attachment:带有{s3key, mimetype, name}的对象
  • thread_id:用于回复草稿(留空主题以保持在线程内)

陷阱

  • 响应包括data.id(draft_id)和data.message.id;对草稿操作使用data.id
  • 在线程回复草稿上设置主题会创建新线程
  • 附件上限约25MB;base64开销可能使接近限制的文件超出
  • UPDATE_DRAFT替换整个内容,非补丁;包括所有要保留的字段
  • 批量创建草稿时可能返回HTTP 429;使用指数退避

常见模式

ID解析

标签名称 → 标签ID

1. 调用GMAIL_LIST_LABELS
2. 在响应中按名称查找标签
3. 提取id字段(例如,'Label_123')

联系人名称 → 电子邮件

1. 使用query=contact_name调用GMAIL_SEARCH_PEOPLE
2. 从响应中提取emailAddresses

搜索中的线程ID

1. 调用GMAIL_FETCH_EMAILS或GMAIL_LIST_THREADS
2. 提取threadId(15-16字符十六进制字符串)

分页

  • 设置max_results每页最多500
  • 检查响应中的nextPageToken
  • 在下一次请求中将令牌作为page_token传递
  • 继续直到nextPageToken不存在或为空字符串
  • resultSizeEstimate是近似值,非精确

Gmail查询语法

运算符

  • from:sender@example.com - 来自发件人的邮件
  • to:recipient@example.com - 发送给收件人的邮件
  • subject:"exact phrase" - 主题包含确切短语
  • is:unread - 未读消息
  • is:starred - 星标消息
  • is:snoozed - 已休眠消息
  • has:attachment - 有附件
  • after:2024/01/01 - 在日期之后(YYYY/MM/DD)
  • before:2024/12/31 - 在日期之前
  • label:custom_label - 用户创建的标签(使用标签ID)
  • in:sent - 在已发送文件夹中
  • category:primary - 主要类别

组合器

  • AND - 两个条件(默认)
  • OR - 任一条件
  • NOT - 排除条件
  • () - 分组条件

示例

  • from:boss@company.com is:unread - 来自老板的未读邮件
  • subject:invoice has:attachment after:2024/01/01 - 今年有附件的发票
  • (from:alice OR from:bob) is:starred - 来自Alice或Bob的星标邮件

已知陷阱

ID格式

  • 自定义标签操作需要标签ID(例如,‘Label_123’),而非显示名称
  • 始终先调用LIST_LABELS以将名称解析为ID
  • 消息ID是15-16字符十六进制字符串
  • 不要使用UUID、网页UI ID或’thread-f:'前缀

查询语法

  • 对状态使用’is:'(unread、snoozed、starred)
  • 仅对用户创建的标签使用’label:’
  • 系统标签使用’is:‘或’in:’(例如,‘is:sent’、‘in:inbox’)

速率限制

  • BATCH_MODIFY_MESSAGES每次调用最多1000条消息
  • 大量使用会触发403/429速率限制
  • 对批量操作实施指数退避

响应解析

  • 响应数据可能嵌套在data_previewdata.messages
  • 使用备用方案防御性解析
  • 时间戳messageTimestamp使用带’Z’后缀的RFC3339
  • 如果需要解析,标准化为’+00:00’

附件

  • 来自先前下载的附件s3key可能过期
  • 检索后及时使用
  • Mimetype必须包含’/'分隔符

快速参考

任务 工具Slug 关键参数
发送邮件 GMAIL_SEND_EMAIL recipient_email, subject, body, is_html
回复线程 GMAIL_REPLY_TO_THREAD thread_id, message_body, recipient_email
搜索邮件 GMAIL_FETCH_EMAILS query, max_results, label_ids, page_token
获取消息详情 GMAIL_FETCH_MESSAGE_BY_MESSAGE_ID message_id
列出标签 GMAIL_LIST_LABELS (无)
创建标签 GMAIL_CREATE_LABEL label_name, background_color, text_color
批量修改标签 GMAIL_BATCH_MODIFY_MESSAGES messageIds, addLabelIds, removeLabelIds
创建草稿 GMAIL_CREATE_EMAIL_DRAFT recipient_email, subject, body, thread_id
发送草稿 GMAIL_SEND_DRAFT draft_id
获取附件 GMAIL_GET_ATTACHMENT message_id, attachment_id
搜索联系人 GMAIL_SEARCH_PEOPLE query
获取个人资料 GMAIL_GET_PROFILE (无)