🧪 Skills

Outlook Pywin32

通过pywin32本地操作Outlook的命令行工具。支持邮件管理、日历管理等功能。使用命令: outlook-pywin32.py <方法名> --参数 值

v0.7.0
❤️ 0
⬇️ 133
👁 1
Share

Description


name: outlook-pywin32 description: "通过pywin32本地操作Outlook的命令行工具。支持邮件管理、日历管理等功能。使用命令: outlook-pywin32.py <方法名> --参数 值"

Outlook PyWin32 命令行工具

版本更新

v0.7

新增功能:

  • 添加 calendar-edit 方法,支持修改日程安排事件
  • 支持通过主题或开始时间搜索日程
  • 支持修改日程的各种属性(主题、时间、地点、参与人等)
  • 修改后仅保存,不发送通知

修复的bug:

  • 修复了 calendar-listcalendar-edit 方法中当指定账户不存在时的错误
  • 优化了时间匹配逻辑,提高搜索可靠性

前提条件

基于pywin32的Outlook本地自动化工具,无需OAuth,直接操作本地Outlook。

无论使用哪种安装方法,都需要满足以下条件:

  • Windows系统
  • 已安装Outlook客户端
  • Python 3.7+
  • pywin32 库

安装

方法一:通过 ClawHub 安装(推荐)

clawhub install outlook-pywin32

方法二:手动安装

克隆或下载此项目

安装依赖

pip install pywin32

用法

python scripts/outlook-pywin32.py <方法名> --参数 值 --参数2 值2

可用方法

邮件相关

方法 说明 参数
mail-folders 检查并列出邮件文件夹 --account
mail-new 创建邮件并保存到草稿箱 --to, --subject, --body, --cc, --bcc
mail-list 列出邮件 --folder, --limit, --account
mail-read 读取邮件 --folder, --index, --account
mail-search 搜索邮件 --query, --limit, --account, --start-time, --end-time
account-list 列出所有可用的Outlook账户

日历相关

方法 说明 参数
calendar-list 列出即将举行的日程安排事件 --limit, --days, --include-today, --account
calendar-new 创建一个日程安排事件 --subject, --start, --end, --location, --body, --required-attendees, --optional-attendees, --all-day, --reminder, --account
calendar-edit 修改一个日程安排事件(仅保存,不发送通知) --subject, --start, --new-subject, --new-start, --new-end, --location, --body, --required-attendees, --optional-attendees, --all-day, --reminder, --account

参数说明

通用参数

  • --account: 邮箱账户地址(可选)
    • 优先级:1. 传入参数 2. 环境变量 OUTLOOK_ACCOUNT 3. config.json 文件

邮件相关参数

mail-search 特有参数

  • --query: 搜索关键词(可选)
  • --start-time: 起始时间(可选,如 2024-01-01 或 2024-01-01 09:00:00)
    • 只指定日期时,默认设置为 00:00:00
  • --end-time: 结束时间(可选,如 2024-12-31 或 2024-12-31 18:00:00)
    • 只指定日期时,默认设置为 23:59:59

日历相关参数

calendar-list 特有参数

  • --limit: 返回数量(默认10)
  • --days: 查看未来几天的事件(默认7)
  • --include-today: 是否包含今天的事件(true/false,默认true)

calendar-new 特有参数

  • --subject: 日程主题(必需)
  • --start: 开始时间(格式: YYYY-MM-DD HH:MM:SS 或 YYYY-MM-DD)
  • --end: 结束时间(可选,默认开始时间+30分钟)
  • --location: 地点(可选)
  • --body: 备注(可选)
  • --required-attendees: 必需参与人(多个用分号分隔)
  • --optional-attendees: 可选参与人(多个用分号分隔)
  • --all-day: 是否全天事件(true/false,默认false)
  • --reminder: 提醒提前分钟数(默认15, 0表示不提醒)

配置文件

在 scripts 目录下创建 config.json 文件,可配置默认邮箱账户:

{
  "outlook_account": "xx@cuhk.edu.cn"
}

环境变量

  • OUTLOOK_ACCOUNT: 默认邮箱账户地址

示例

邮件相关示例

# 列出可用的Outlook账户
python scripts/outlook-pywin32.py account-list

# 检查邮件文件夹
python scripts/outlook-pywin32.py mail-folders

# 创建邮件
python scripts/outlook-pywin32.py mail-new --to user@example.com --subject "测试" --body "你好"

# 列出收件箱前10封邮件
python scripts/outlook-pywin32.py mail-list --folder inbox --limit 10

# 列出指定账户的邮件
python scripts/outlook-pywin32.py mail-list --account xx@cuhk.edu.cn

# 读取第1封邮件
python scripts/outlook-pywin32.py mail-read --folder inbox --index 1

# 只按关键词搜索邮件
python scripts/outlook-pywin32.py mail-search --query "发票"

# 只按时间范围搜索邮件
python scripts/outlook-pywin32.py mail-search --start-time 2024-01-01 --end-time 2024-12-31

# 同时使用关键词和时间范围搜索
python scripts/outlook-pywin32.py mail-search --query "会议" --start-time 2024-01-01 --end-time 2024-12-31

# 使用config.json中的账户搜索
python scripts/outlook-pywin32.py mail-search --query "会议"

日历相关示例

# 列出未来7天的日程(包含今天)
python scripts/outlook-pywin32.py calendar-list

# 列出未来3天的日程(不包含今天)
python scripts/outlook-pywin32.py calendar-list --days 3 --include-today false

# 创建一个简单的日程
python scripts/outlook-pywin32.py calendar-new --subject "团队会议" --start "2026-03-13 14:00:00"

# 创建一个带有地点和参与人的日程
python scripts/outlook-pywin32.py calendar-new \
  --subject "项目评审" \
  --start "2026-03-14 10:00:00" \
  --end "2026-03-14 11:30:00" \
  --location "会议室A" \
  --required-attendees "zhangsan@example.com;lisi@example.com" \
  --optional-attendees "wangwu@example.com" \
  --body "讨论项目进展"

# 创建一个全天事件
python scripts/outlook-pywin32.py calendar-new --subject "公司年会" --start "2026-03-15" --all-day true --reminder 0

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs