Token导航 LogoToken导航

Agent Skill · 研究检索

outlook-reader(展望读者)

outlook-reader 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

outlook-reader 是研究检索类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为需要联网;许可证为 MIT-0,第三方扫描有提醒项,按安装量在研究检索类的 73,675 个 Skill 里排第 29,321。

总安装 3,072周安装 128GitHub Stars 公开资料未说明下载 1,024核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.0

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:outlook-reader(展望读者)
来源仓库:https://github.com/die0921/outlook-reader
安装命令:
openclaw skills install outlook-reader
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install outlook-reader

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

自动连接Outlook读取指定主题邮件,支持跨文件夹搜索并下载或解压附件到指定目录。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install outlook-reader;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

outlook-reader 怎么安装?

在终端执行 openclaw skills install outlook-reader。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

outlook-reader 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

outlook-reader 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

outlook-reader 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

outlook-reader 用的人多吗?

公开数据是累计安装 3,072 次,近一周安装 128 次,下载 1,024 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

outlook-reader 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。

先想清楚的地方

  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
outlook-reader

展望读者 · 本页

3,072—需要联网MIT-0有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Outlook 邮件读取技能

自动读取Outlook邮件,搜索特定主题,下载附件。

触发条件

  • 用户要求读取Outlook邮件
  • 用户提到"广发信用卡账单"、"邮箱对账单"
  • 用户要求自动处理邮件附件

一、核心原理

使用 Windows COM 接口连接 Outlook:

import win32com.client
outlook = win32com.client.Dispatch("Outlook.Application")
namespace = outlook.GetNamespace("MAPI")
inbox = namespace.GetDefaultFolder(6)  # 6=收件箱
messages = inbox.Items

二、读取邮件并下载附件

基础脚本

# -*- coding: utf-8 -*-
import win32com.client
import os
import datetime

def read_outlook_emails(subject_keyword, folder_id=6, max_emails=50):
    """
    读取Outlook邮件
    
    参数:
        subject_keyword: 主题关键词,如"广发"
        folder_id: 文件夹ID,默认6=收件箱
        max_emails: 最大读取数量
    
    返回:
        匹配的邮件列表
    """
    outlook = win32com.client.Dispatch("Outlook.Application")
    namespace = outlook.GetNamespace("MAPI")
    inbox = namespace.GetDefaultFolder(folder_id)
    messages = inbox.Items
    
    # 按时间排序
    messages.Sort("ReceivedTime", True)
    
    matched = []
    count = 0
    
    for msg in messages:
        if count >= max_emails:
            break
            
        if subject_keyword and subject_keyword in str(msg.Subject):
            # 获取附件
            attachments = []
            for att in msg.Attachments:
                attachments.append({
                    'name': att.FileName,
                    'size': att.Size
                })
            
            matched.append({
                'subject': msg.Subject,
                'date': msg.ReceivedTime,
                'sender': msg.SenderName,
                'attachments': attachments,
                'message': msg  # 完整消息对象,用于下载附件
            })
            
        count += 1
    
    return matched


def download_attachments(messages, save_dir):
    """
    下载邮件附件
    
    参数:
        messages: 邮件列表
        save_dir: 保存目录
    """
    os.makedirs(save_dir, exist_ok=True)
    
    downloaded = []
    for msg_data in messages:
        msg = msg_data['message']
        
        for att in msg.Attachments:
            save_path = os.path.join(save_dir, att.FileName)
            att.SaveAsFile(save_path)
            downloaded.append(save_path)
            print(f"已下载: {save_path}")
    
    return downloaded


# 使用示例
if __name__ == "__main__":
    # 1. 搜索广发信用卡对账单
    emails = read_outlook_emails("广发")
    print(f"找到 {len(emails)} 封匹配邮件")
    
    # 2. 下载附件
    save_dir = r"C:\Users\jw0921\Desktop\GF_Bills"
    files = download_attachments(emails, save_dir)
    print(f"共下载 {len(files)} 个附件")

三、搜索多个关键词

def search_multiple_keywords(keywords, folder_id=6):
    """搜索多个关键词"""
    outlook = win32com.client.Dispatch("Outlook.Application")
    namespace = outlook.GetNamespace("MAPI")
    inbox = namespace.GetDefaultFolder(folder_id)
    messages = inbox.Items
    messages.Sort("ReceivedTime", True)
    
    results = {kw: [] for kw in keywords}
    
    for msg in messages:
        subject = str(msg.Subject)
        for kw in keywords:
            if kw in subject:
                results[kw].append({
                    'subject': subject,
                    'date': msg.ReceivedTime,
                    'attachments': [att.FileName for att in msg.Attachments]
                })
    
    return results


# 使用
results = search_multiple_keywords(["广发", "招商", "建设", "工商银行"])
for kw, emails in results.items():
    if emails:
        print(f"{kw}: {len(emails)} 封")

四、搜索所有文件夹

def search_all_folders(keyword, namespace):
    """遍历所有文件夹搜索"""
    results = []
    
    def search_folder(folder, depth=0):
        try:
            messages = folder.Items
            for msg in messages:
                try:
                    if keyword in str(msg.Subject):
                        results.append({
                            'folder': folder.Name,
                            'subject': msg.Subject,
                            'date': msg.ReceivedTime
                        })
                except:
                    pass
        except:
            pass
        
        # 递归搜索子文件夹
        for subfolder in folder.Folders:
            search_folder(subfolder, depth+1)
    
    # 从根文件夹开始搜索
    for folder in namespace.Folders:
        search_folder(folder)
    
    return results


# 使用
outlook = win32com.client.Dispatch("Outlook.Application")
namespace = outlook.GetNamespace("MAPI")
results = search_all_folders("广发", namespace)
print(f"共找到 {len(results)} 封邮件")

五、处理附件

判断附件类型

for att in msg.Attachments:
    filename = att.FileName
    # 判断是否为PDF
    if filename.lower().endswith('.pdf'):
        att.SaveAsFile(os.path.join(save_dir, filename))

解压ZIP附件

import zipfile

for att in msg.Attachments:
    if att.FileName.endswith('.zip'):
        zip_path = os.path.join(save_dir, att.FileName)
        att.SaveAsFile(zip_path)
        
        # 解压
        extract_dir = save_dir + "\\" + att.FileName[:-4]
        with zipfile.ZipFile(zip_path, 'r') as zip_ref:
            zip_ref.extractall(extract_dir)

六、常见问题

1. Outlook未打开

try:
    outlook = win32com.client.Dispatch("Outlook.Application")
except:
    print("请先打开Outlook")

2. 中文编码问题

# 在Windows命令提示符执行
chcp 65001
# 或在Python开头加
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

3. 找不到邮件

  • 检查Outlook是否同步
  • 尝试搜索所有文件夹
  • 可能是其他邮箱账户

4. 附件太大

  • Outlook有附件大小限制
  • 可考虑用IMAP替代

七、文件夹ID参考

ID文件夹
0文件夹根目录
1用户自定义文件夹
2收件箱
3发件箱
4已发送邮件
5已删除邮件
6收件箱(inbox)
9日历
10联系人
11便签

八、自动化方案

方案1:定时检查(cron)

# 每小时检查一次
cron add --schedule "every 1h" --payload "检查广发信用卡账单"

方案2:Outlook规则

规则:如果发件人包含"95508" → 保存附件到指定文件夹

然后监控该文件夹

方案3:收到邮件自动转发

规则:如果主题包含"广发对账单" → 转发给AI助手

平台分布

OpenClaw

95.89%
按下载量换算982

安全审计

VirusTotal

可疑

ClawScan

可疑

Static analysis

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills