技能详情(站内镜像,无评论)
许可证:MIT-0
MIT-0 ·免费使用、修改和重新分发。无需归因。
版本:v1.0.1
统计:⭐ 0 · 2.2k · 0 current installs · 0 all-time installs
⭐ 0
安装量(当前) 0
🛡 VirusTotal :可疑 · OpenClaw :良性
Package:abhinavjp/ms-outlook-teams-assistant
安全扫描(ClawHub)
- VirusTotal :可疑
- OpenClaw :良性
OpenClaw 评估
The skill’s code and runtime instructions match its stated purpose (Outlook Desktop COM scanning and optional Teams via Microsoft Graph); it is internally coherent but requires caution because it will read local email/Teams data and store tokens/state on disk.
目的
The skill is desktop-first and uses Outlook COM (pywin32) and optional Microsoft Graph for Teams — this matches the description. Minor mismatch: the registry metadata declares no OS restriction or required binaries, but the code requires a Windows environment with Python and the pywin32 (win32com) package for full Outlook functionality. That omission is configuration sloppiness but not functional deception.
说明范围
SKILL.md instructs the agent to scan Outlook, optionally use Graph for Teams via device-code auth, create drafts (not send), and use local state files for dismiss/snooze. The scripts only reference the intended files and APIs (Outlook COM, Microsoft Graph). They do read mailbox contents and Teams messages — which is expected for the stated purpose — and they write local state and token cache files.
安装机制
There is no install spec and no remote download — this is an instruction-and-script bundle. Dependencies are normal Python packages (pywin32, msal, requests) installed via pip as instructed. No suspicious third-party download URLs or archive extraction were used.
证书
The skill declares no environment variables but requires configuration values (Outlook mailbox name, Teams tenantId/clientId/scopes) in references/config.json. If Teams is enabled, MSAL will create a token cache file (state/teams_token_cache.bin) containing authentication material. Requesting tenant/client IDs and writing a token cache is proportionate to Graph usage, but the user should treat these files as sensitive.
持久
The skill writes state files (state/*.json) and a token cache for Graph in state/. It does not set always:true and does not modify other skills. Autonomous invocation is allowed by default (platform normal), so if the agent is granted runtime access the skill could run scans without further manual steps. This is expected for an automation skill but increases the importance of trusting the skill source.
综合结论
This skill appears to do what it says: locally scan Outlook via COM and optionally call Microsoft Graph for Teams. Before installing, consider: (1) you must run it on Windows with Python and pywin32; the metadata does not state that explicitly—confirm your environment. (2) The skill will read your emails/Teams messages and store state and a token cache under the skill directory — treat those files as sensitive and don't commit them to source c…
安装(复制给龙虾 AI)
将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。
请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「MS Outlook + Teams Assistant」。简介:Track and nag about Microsoft Outlook email and (optionally) Microsoft Teams me…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/abhinavjp/ms-outlook-teams-assistant/SKILL.md
(来源:yingzhi8.cn 技能库)
SKILL.md
---
name: ms-outlook-teams-assistant
description: "Track and nag about Microsoft Outlook email and (optionally) Microsoft Teams messages on a Windows machine, without relying on web versions. Use when the user asks to: (1) monitor inbox/mentions and remind them on Telegram/Teams until dismissed, (2) draft short, personable, low-jargon email replies from an existing Outlook thread, (3) surface action items from the last N days (default 7). Works via Outlook Desktop automation (COM) and optionally Microsoft Graph for Teams if configured."
---
# MS Outlook + Teams Assistant (Desktop-first)
## What this skill does
- **Inbox nagging (Outlook Desktop)**: find messages from the last 7 days that likely need a reply, then send reminders until dismissed.
- **Email reply drafting**: produce concise drafts that match the user’s tone rules (conversational, spartan, polite; simple English; short; reduce redundancy; avoid em dashes).
- **Teams tracking (optional)**: if Microsoft Graph is configured and permitted by tenant policy, track recent Teams chat messages that likely need a reply and nag similarly.
## Safety defaults
- Do **not** auto-send emails or Teams messages.
- Create **drafts** in Outlook, or paste drafts into Telegram for approval.
- For reminders: send to **Telegram** by default; only send to Teams if explicitly enabled.
## Setup (one time)
### A) Outlook Desktop automation (recommended)
1. Ensure Outlook Desktop is installed and signed in.
2. Install the Python dependency (ask before doing this on the machine):
- `pip install pywin32`
3. Create a config file:
- Copy `references/config.example.json` → `references/config.json` and fill it.
- IMPORTANT: Do not commit `references/config.json` if it contains personal IDs.
### B) Teams via Graph (optional)
Only if you can create an Entra ID app registration and grant permissions.
- Copy `references/config.example.json` → `references/config.json` and fill `teams.tenantId`, `teams.clientId`, and `teams.scopes`.
- Then run `scripts/teams_scan.py` once to complete Device Code sign-in.
See `references/teams-graph-setup.md`.
## Core workflows
### 1) Scan and remind (Outlook)
Use `scripts/scan_outlook.py`.
### 1b) Scan Teams (Graph)
Use `scripts/teams_scan.py`.
Parameters:
- `--days 7` (default)
First run will print a **device code** sign-in message (follow it once).
Parameters:
- `--days 7` (default)
- `--mode report|telegram` (default: report)
- `--max-items 200`
Heuristics (editable in config):
- Within last N days
- Not from obvious broadcast sources
- Prefer threads where user is **To:** (not only CC) OR subject/body contains direct asks
- Prefer messages not replied by user (best-effort)
Output:
- A list of actionable items with: subject, sender, received time, why it was flagged.
Then:
- If `--mode telegram`, send a single concise reminder message with bullet items.
### 2) Dismiss / snooze an item
This skill uses a local state file to avoid nag loops.
- Dismiss: add the message’s `internetMessageId` (or subject+timestamp fallback) to the dismissed list.
- Snooze: store a `snoozeUntil` timestamp.
Use `scripts/state.py` helpers (or edit JSON directly if needed).
### 3) Draft an email reply (Outlook)
Use `scripts/draft_reply.py`.
### 4) Generate reminders (no send)
Use `scripts/scan_all.py` to update cached scan results, then `scripts/remind.py` to generate a Telegram-ready reminder message (it does not send).
It applies:
- 1:1 Teams → remind when `needsReply=true`
- Group Teams → remind when `mentionedMe=true` AND `needsReply=true`
- Outlook → remind for flagged items
The agent should send the output to Telegram if non-empty.
Inputs:
- Either a message `EntryID` (preferred) or search by subject + recent window.
Behavior:
- Extract the thread (best-effort) + key metadata.
- Generate 2 drafts:
- **Short** (2–5 sentences)
- **Normal** (5–10 sentences)
- Apply tone rules from `references/writing-style.md`.
Outputs:
- Print drafts to stdout.
- Optionally create an Outlook **draft reply** (no sending) if `--create-draft` is set.
## When you need more context from the user
Ask only what you cannot infer:
- Which email to reply to (subject / sender / when)
- The user’s intent (agree/decline/ask for info/confirm timeline)
- Any constraints (deadlines, attachments, names)
Keep questions minimal (max 3 at a time).