名称: sog
描述: Standards Ops Gadget — 用于 IMAP/SMTP/CalDAV/CardDAV/WebDAV 的命令行工具。是 gog(Google)和 mog(Microsoft)的开源标准替代方案。
主页: https://github.com/visionik/sogcli
元数据: {"clawdbot":{"emoji":"📬","requires":{"bins":["sog"]},"install":[{"id":"go","kind":"go","package":"github.com/visionik/sogcli/cmd/sog@latest","bins":["sog"],"label":"安装 sog (go install)"}]}}
用于 IMAP/SMTP/CalDAV/CardDAV/WebDAV 的命令行工具。
是 gog(Google)和 mog(Microsoft)的开源标准替代方案。
sog auth add you@fastmail.com --discover
sog auth test
sog mail list
--account, -a 指定使用的账户邮箱 ($SOG_ACCOUNT)
--json 以 JSON 格式输出(适用于脚本)
--plain 以制表符分隔值(TSV)格式输出(便于解析)
--force 跳过确认提示
--no-input 从不提示(适用于 CI 模式)
--verbose, -v 启用调试日志
--ai-help 获取详细的帮助文本
sog auth add <邮箱> [标志]
--discover 通过 DNS 自动发现服务器
--imap-host IMAP 服务器主机名
--imap-port IMAP 端口(默认:993)
--smtp-host SMTP 服务器主机名
--smtp-port SMTP 端口(默认:587)
--caldav-url CalDAV 服务器 URL
--carddav-url CardDAV 服务器 URL
--webdav-url WebDAV 服务器 URL
--password 密码(存储在密钥链中)
sog auth list # 列出账户
sog auth test [邮箱] # 测试连接
sog auth remove <邮箱> # 移除账户
sog auth password <邮箱> # 设置特定协议的密码
--imap, --smtp, --caldav, --carddav, --webdav
sog mail list [文件夹]
--max N 最大邮件数(默认:20)
--unseen 仅显示未读邮件
sog mail get <邮件UID>
--headers 仅显示邮件头
--raw 原始 RFC822 格式
sog mail search <查询>
# 使用 IMAP SEARCH 语法:FROM, TO, SUBJECT, SINCE, BEFORE 等。
# 示例:sog mail search "FROM john SINCE 1-Jan-2026"
sog mail send --to <邮箱> --subject <主题> [标志]
--to 收件人(可多个)
--cc 抄送收件人(可多个)
--bcc 密送收件人(可多个)
--subject 邮件主题
--body 邮件正文
--body-file 从文件读取正文(- 表示 stdin)
--body-html HTML 正文内容
sog mail reply <邮件UID> --body <正文>
sog mail forward <邮件UID> --to <邮箱>
sog mail move <邮件UID> <目标文件夹>
sog mail copy <邮件UID> <目标文件夹>
sog mail flag <邮件UID> <标记> # 标记:seen, flagged, answered, deleted
sog mail unflag <邮件UID> <标记>
sog mail delete <邮件UID>
sog folders list
sog folders create <名称>
sog folders delete <名称>
sog folders rename <旧名> <新名>
sog drafts list
sog drafts create [标志] # 标志与 `mail send` 相同
sog drafts send <草稿UID>
sog drafts delete <草稿UID>
sog cal list [日历名称]
--from 开始日期(默认:今天)
--to 结束日期(默认:+30d)
--max 最大事件数
sog cal get <事件UID>
sog cal search <查询> # 在标题/描述/地点中搜索
sog cal today [日历名称]
sog cal week [日历名称]
sog cal create <标题> --start <开始时间> [标志]
--start 开始时间(YYYY-MM-DDTHH:MM 或 YYYY-MM-DD 表示全天事件)
--end 结束时间
--duration 持续时间(例如 1h, 30m)
--location 地点
--description 描述
sog cal update <事件UID> [标志] # 标志与 `create` 相同
sog cal delete <事件UID>
sog cal calendars # 列出日历
sog contacts list [通讯录]
--max 最大联系人数量
sog contacts get <联系人UID>
sog contacts search <查询> # 搜索姓名/邮箱/电话
sog contacts create <姓名> [标志]
-e, --email 邮箱地址(可多个)
-p, --phone 电话号码(可多个)
--org 组织
--title 职位
--note 备注
sog contacts update <联系人UID> [标志] # 标志与 `create` 相同
sog contacts delete <联系人UID>
sog contacts books # 列出通讯录
sog tasks list [任务列表]
--all 包含已完成的任务
sog tasks add <标题> [标志]
--due 截止日期(YYYY-MM-DD)
-p, --priority 优先级(1-9,1为最高)
-d, --description 描述
sog tasks get <任务UID>
sog tasks update <任务UID> [标志] # 标志与 `add` 相同
sog tasks done <任务UID> # 标记为完成
sog tasks undo <任务UID> # 标记为未完成
sog tasks delete <任务UID>
sog tasks clear # 删除所有已完成的任务
sog tasks due <日期> # 指定日期前到期的任务
sog tasks overdue # 已过期的任务
sog tasks lists # 列出任务列表
sog drive ls [路径]
-l 长格式显示详细信息
--all 显示隐藏文件
sog drive get <路径> # 获取文件元数据
sog drive download <远程路径> [本地路径]
sog drive upload <本地路径> [远程路径]
sog drive mkdir <路径>
sog drive delete <路径>
sog drive move <源路径> <目标路径>
sog drive copy <源路径> <目标路径>
sog drive cat <路径> # 输出文件内容到 stdout
sog invite send <摘要> <与会者>... --start <开始时间> [标志]
--start 开始时间
--duration 持续时间(默认:1h)
--location 地点
--description 描述
sog invite reply <文件> --status <accept|decline|tentative>
--comment 可选评论
sog invite cancel <事件UID> <与会者>...
sog invite parse <文件> # 解析 .ics 文件
sog invite preview <摘要> <与会者>... --start <开始时间>
sog idle [文件夹] # 监听新邮件(推送通知)
--timeout 超时时间(秒)
--json:每行一个 JSON 对象(JSONL)--plain:制表符分隔值(TSV)# 列出最近的邮件
sog mail list --max 10
# 发送邮件
sog mail send --to user@example.com --subject "Hello" --body "Hi there"
sog mail send --to user@example.com --subject "Report" --body-file report.md
cat draft.txt | sog mail send --to user@example.com --subject "Hi" --body-file -
# 查看今日日历
sog cal today
# 创建会议并发送邀请
sog invite send "团队同步" alice@example.com bob@example.com \
--start "2026-01-25T14:00" --duration 30m --location "Zoom"
# 添加任务
sog tasks add "Review PR" --due 2026-01-26 -p 1
# 上传文件
sog drive upload report.pdf /documents/
# 搜索联系人
sog contacts search "John"
其他符合标准的提供商理论上可用,但尚未经过测试。
密码安全地存储在系统原生的凭证存储中:
| 平台 | 后端 |
|---|---|
| macOS | 钥匙串 |
| Windows | Windows 凭据管理器 |
| Linux/BSD | D-Bus Secret Service(GNOME Keyring, KWallet) |
支持为每个协议(IMAP、SMTP、CalDAV、CardDAV、WebDAV)设置独立的密码。
SOG_ACCOUNT=you@example.com 环境变量可避免重复使用 --account 标志。