协作办公
用 Gmail 命令行脚本收发/检索邮件并管理标签(需…
当需要搜索、读取、发送 Gmail 邮件、创建草稿或增删邮件标签时,用 scripts/gmail.py 系列命令直接操作邮箱。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
用 Gmail 命令行脚本收发/检索邮件特定
解决思路
- 首次使用前先用 Google 账号完成认证(会打开浏览器):`python scripts/auth.py login`
- 查看当前认证状态:`python scripts/auth.py status`
- 需要时登出:`python scripts/auth.py logout`
- 所有邮箱操作都通过 `scripts/gmail.py` 执行;若尚未登录,首次使用时会自动触发认证。
- 搜索邮件:支持 Gmail 查询语法,如 `python scripts/gmail.py search "from:someone@example.com is:unread"`
- 按条数搜索最近邮件(不带 query 即返回全部):`python scripts/gmail.py search --limit 20`
- 按标签过滤:`python scripts/gmail.py search --label INBOX --limit 10`
- 把垃圾邮件和回收站也纳入搜索范围:`python scripts/gmail.py search "subject:important" --include-spam-trash`
- 读取邮件正文:`python scripts/gmail.py get MESSAGE_ID`
- 只取元数据(邮件头):`python scripts/gmail.py get MESSAGE_ID --format metadata`
- 取最小响应(仅 ID):`python scripts/gmail.py get MESSAGE_ID --format minimal`
- 发送普通邮件:`python scripts/gmail.py send --to "user@example.com" --subject "Hello" --body "Message body"`
- 发送时抄送和密送:加 `--cc "cc@example.com" --bcc "bcc@example.com"`
- 用别名发信(该别名必须已在 Gmail 设置中配置):加 `--from "Mile9 Accounts <accounts@mile9.io>"`
- 发送 HTML 邮件:在 body 中写 HTML 并加 `--html`,如 `python scripts/gmail.py send --to ... --body "<h1>Hello</h1><p>HTML content</p>" --html`
- 创建草稿:`python scripts/gmail.py create-draft --to "user@example.com" --subject "Draft Subject" --body "Draft content"`
- 发送已有草稿:`python scripts/gmail.py send-draft DRAFT_ID`
- 标记为已读:`python scripts/gmail.py modify MESSAGE_ID --remove-label UNREAD`
- 标记为未读:`python scripts/gmail.py modify MESSAGE_ID --add-label UNREAD`
- 归档(移出收件箱):`python scripts/gmail.py modify MESSAGE_ID --remove-label INBOX`
- 加星标:`python scripts/gmail.py modify MESSAGE_ID --add-label STARRED`
- 取消星标:`python scripts/gmail.py modify MESSAGE_ID --remove-label STARRED`
- 标记为重要:`python scripts/gmail.py modify MESSAGE_ID --add-label IMPORTANT`
- 一次做多个标签变更:同时传入多个参数,如 `--remove-label UNREAD --add-label STARRED`
- 列出全部 Gmail 标签(系统标签和自定义标签):`python scripts/gmail.py list-labels`
- 用 Gmail 搜索运算符构造查询:`from:`(发件人)、`to:`(收件人)、`subject:`(主题含关键词)、`is:unread`、`is:starred`、`is:important`、`has:attachment`、`after:2024/01/01`、`before:2024/12/31`、`newer_than:7d`、`older_than:1m`、`label:work`、`in:inbox`、`in:sent`、`in:trash`
- 组合查询:用空格表示 AND、`OR` 表示或、`-` 表示 NOT,如 `search "from:boss@company.com is:unread newer_than:1d"`、`search "subject:urgent OR subject:important"`、`search "from:newsletter@example.com -is:starred"`
- 使用常见标签 ID 做标签操作:INBOX、SENT、DRAFT、SPAM、TRASH、STARRED、IMPORTANT、UNREAD
- 令牌通过系统钥匙串安全存储(macOS 用 Keychain、Windows 用 Credential Locker、Linux 用 Secret Service API 如 GNOME Keyring/KDE Wallet),服务名为 `gmail-skill-oauth`
- 令牌过期时会借助 Google 的云函数自动刷新
适用边界 · 注意事项
- 需要 Google Workspace 账号,个人 Gmail 账号不受支持
- 发信使用的别名必须事先在 Gmail 设置中配置好,否则无法从该别名发送
- 依赖本地 Python 脚本与系统钥匙串环境,纯网页或无 Python 环境的场景不适用