OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  sogcli:标准化运维工具集 —— 命令行版

sogcli:标准化运维工具集 —— 命令行版

 
  token ·  2026-02-21 00:26:07 · 3 次点击  · 0 条评论  

名称: 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)"}]}}


sog — Standards Ops Gadget

用于 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

邮件 (IMAP/SMTP)

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>

日历 (CalDAV)

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                # 列出日历

联系人 (CardDAV)

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               # 列出通讯录

任务 (CalDAV VTODO)

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                  # 列出任务列表

文件 (WebDAV)

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

会议邀请 (iTIP/iMIP)

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 <开始时间>

IMAP IDLE

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"

已测试的提供商

  • Fastmail ✅(完全支持)

其他符合标准的提供商理论上可用,但尚未经过测试。

凭证存储

密码安全地存储在系统原生的凭证存储中:

平台 后端
macOS 钥匙串
Windows Windows 凭据管理器
Linux/BSD D-Bus Secret Service(GNOME Keyring, KWallet)

支持为每个协议(IMAP、SMTP、CalDAV、CardDAV、WebDAV)设置独立的密码。

注意事项

  • 设置 SOG_ACCOUNT=you@example.com 环境变量可避免重复使用 --account 标志。
  • 属于 Ops Gadget 家族:gog(Google)、mog(Microsoft)、sog(Standards)。
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor