Full access to all Exchange 2010 EWS functions, should work with other EWS Open Source

Polar Sponsor
爱发电 赞助
.NET 9.0

可完全访问 Exchange 2010 EWS,管理邮件、文件夹、附件、日历事件、联系人、任务及外出设置。

exchange 2010. 2010 EWS集成,用于电子邮件、日历、联系人和任务.

功能概述

exchange 2010. 2010 EWS集成,用于电子邮件、日历、联系人和任务.是一项面向实际任务的技能,主要用于Setup. 要求以.env.creditises 的证书 :.;FeaturesQQ 电子邮件:读取未读,发送,搜索,标记为读QQ。

核心要点

  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;

结果检查与注意事项

涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

exchange2010

Exchange 2010 EWS 集成,支持邮件、日历、联系人和任务管理。

配置

需在 .env.credentials 文件中提供凭据:

EXCHANGE_SERVER=mail.company.com
EXCHANGE_DOMAIN=company
EXCHANGE_EMAIL=user@company.com
EXCHANGE_PASSWORD=your_password

功能特性

  • 邮件:读取未读邮件、发送、搜索、标记为已读
  • 邮件附件:下载附件、提取文本(PDF、TXT)
  • 邮件文件夹:浏览“已发送”、“草稿”、“垃圾邮件”、“已删除邮件”等文件夹
  • 日历:查看、创建、更新、删除及搜索日程事件
  • 重复事件:识别并管理重复系列
  • 共享日历:访问其他 Exchange 邮箱的日历
  • 联系人:搜索通讯录、解析姓名(GAL)
  • 任务 / 待办事项:管理、新建、完成任务
  • 外出办公(Out-of-Office):读取和设置缺席消息
  • EWS 过滤器:支持快速搜索,如 subject__containsstart__gte
  • 列出日历:显示所有日历文件夹

使用示例

读取邮件

from skills.exchange2010 import get_account, get_unread_emails

account = get_account()
emails = get_unread_emails(account, limit=10)
for email in emails:
    print(f"{email['subject']} from {email['sender']}")

今日日程

from skills.exchange2010 import get_today_events

# 当前用户的日程
today = get_today_events()

# 共享日历中的日程
today = get_today_events('shared@company.com')

搜索日程

from skills.exchange2010 import search_calendar_by_subject
from datetime import date

# 快速搜索 Ekadashi 相关日程
ekadashi = search_calendar_by_subject(
    email_address='shared@company.com',
    search_term='Ekadashi',
    start_date=date(2025, 1, 1),
    end_date=date(2026, 12, 31)
)
print(f"Found: {len(ekadashi)} events")

创建日程

from skills.exchange2010 import create_calendar_event
from datetime import datetime

create_calendar_event(
    subject="Team Meeting",
    start=datetime(2026, 2, 7, 14, 0),
    end=datetime(2026, 2, 7, 15, 0),
    body="Project discussion",
    location="Conference Room A"
)

更新日程

from skills.exchange2010 import update_calendar_event
from datetime import datetime

# 重新安排时间
update_calendar_event(
    event_id='AAQkAG...',
    start=datetime(2026, 2, 10, 14, 0),
    end=datetime(2026, 2, 10, 15, 0),
    location="New Room B"
)

浏览邮件文件夹

from skills.exchange2010 import get_folder_emails, list_email_folders

# 列出所有文件夹
folders = list_email_folders(account)
for f in folders:
    print(f"{f['name']}: {f['unread_count']} unread")

# 已发送邮件
sent = get_folder_emails('sent', limit=10)

# 草稿
drafts = get_folder_emails('drafts')

# 垃圾邮件/已删除邮件
trash = get_folder_emails('trash')

搜索邮件

from skills.exchange2010 import search_emails

# 按发件人搜索
emails = search_emails(sender='boss@company.com', limit=10)

# 按主题搜索
emails = search_emails(subject='Invoice', folder='inbox')

# 仅搜索未读邮件
emails = search_emails(is_unread=True, limit=20)

标记邮件为已读

from skills.exchange2010 import mark_email_as_read

mark_email_as_read(email_id='AAQkAG...')

下载附件

from skills.exchange2010 import get_email_attachments

# 显示附件信息
attachments = get_email_attachments(email_id='AAQkAG...')
for att in attachments:
    print(f"{att['name']}: {att['size']} bytes")

# 下载附件到指定路径
attachments = get_email_attachments(
    email_id='AAQkAG...',
    download_path='/tmp/email_attachments'
)

从附件中提取文本

前提条件:需安装 pip install PyPDF2 以支持 PDF 文本提取

from skills.exchange2010 import process_attachment_content

results = process_attachment_content(email_id='AAQkAG...')
for result in results:
    print(f"File: {result['name']}")
    if 'extracted_text' in result:
        print(f"Content: {result['extracted_text'][:500]}...")

搜索联系人

from skills.exchange2010 import search_contacts, resolve_name

# 搜索联系人
contacts = search_contacts('John Doe')
for c in contacts:
    print(f"{c['name']}: {c['email']}")

# 解析姓名(GAL)
result = resolve_name('john.doe@company.com')
if result:
    print(f"Found: {result['name']} - {result['email']}")

管理任务

from skills.exchange2010 import get_tasks, create_task, complete_task, delete_task
from datetime import datetime, timedelta

# 查看待处理任务
tasks = get_tasks()
for task in tasks:
    status = '✅' if task['is_complete'] else '⏳'
    print(f"{status} {task['subject']}")

# 创建新任务
task_id = create_task(
    subject="Finish report",
    body="Q1 report due Friday",
    due_date=datetime.now() + timedelta(days=3),
    importance="High"
)

# 标记为已完成
complete_task(task_id)

# 删除任务
delete_task(task_id)

查找重复事件

from skills.exchange2010 import get_recurring_events

recurring = get_recurring_events(
    email_address='shared@company.com',
    days=30
)
for r in recurring:
    print(f"{r['subject']}: {r['recurrence']}")

外出办公(Out-of-Office)

from skills.exchange2010 import get_out_of_office, set_out_of_office
from datetime import datetime, timedelta

# 检查当前状态
oof = get_out_of_office()
print(f"Out of office active: {oof['enabled']}")

# 启用外出办公
set_out_of_office(
    enabled=True,
    internal_reply="I am on vacation until Feb 15th.",
    external_reply="I am on vacation until Feb 15th.",
    start=datetime.now(),
    end=datetime.now() + timedelta(days=7),
    external_audience='All'  # 'All', 'Known', 'None'
)

# 禁用外出办公
set_out_of_office(enabled=False, internal_reply="")

发送邮件

from skills.exchange2010 import send_email

send_email(
    to=["recipient@example.com"],
    subject="Test",
    body="Hello!",
    cc=["cc@example.com"]
)

API 参考文档

邮件

函数 说明
get_account() 连接 Exchange 服务器
get_unread_emails(account, limit=50) 获取未读邮件
search_emails(search_term, sender, subject, is_unread, folder, limit) 搜索邮件
send_email(to, subject, body, cc, bcc) 发送邮件
mark_email_as_read(email_id) 标记邮件为已读
get_email_attachments(email_id, download_path) 下载附件
process_attachment_content(email_id, attachment_name) 提取附件文本内容

邮件文件夹

函数 说明
get_folder_emails(folder_name, limit, is_unread) 获取指定文件夹中的邮件
list_email_folders(account) 列出所有邮件文件夹

日历

函数 说明
get_today_events(email_address) 获取今日日程
get_upcoming_events(email_address, days) 获取未来 N 天的日程
get_calendar_events(account, start, end) 获取指定时间段内的日程
get_shared_calendar_events(email, start, end) 获取共享日历中的日程
search_calendar_by_subject(email, term, start, end) 按主题快速搜索日程
create_calendar_event(subject, start, end, body, location) 创建日程
update_calendar_event(event_id, ...) 更新日程
get_event_details(event_id) 获取日程详情
delete_calendar_event(event_id) 删除日程
get_recurring_events(email, start, end) 获取重复事件
list_available_calendars(account) 列出可用日历
count_ekadashi_events(email, start_year) 统计 Ekadashi 事件数量

联系人

函数 说明
search_contacts(search_term, limit) 搜索联系人
resolve_name(name) 解析姓名(GAL)

任务

函数 说明
get_tasks(status, folder) 获取任务列表
create_task(subject, body, due_date, importance, categories) 创建任务
complete_task(task_id) 标记任务为已完成
delete_task(task_id) 删除任务

外出办公(Out-of-Office)

函数 说明
get_out_of_office(email_address) 读取外出办公状态
set_out_of_office(enabled, internal_reply, ...) 设置外出办公状态

注意事项

  • Exchange 2010 SP2 明确指定为此模块所兼容的版本
  • 对自有邮箱与共享邮箱均采用 DELEGATE 访问类型
  • EWS 过滤器(如 subject__containsstart__gte)比遍历方式性能更优
  • 时区处理:自动转换为 EWSDateTime 并统一为 UTC 时间
  • 共提供 27 个函数

相关专题

更多
access数据库用途
access数据库用途

access数据库是一种关系型数据库管理系统,主要用途包括:数据存储和管理;数据查询和检索;报告和表单设计;应用程序开发。想了解更多access数据库的相关内容,可以阅读本专题下面的文章。

2024.04.10

6488

16

access怎么导入数据
access怎么导入数据

access导入数据步骤:1. 选择数据源 2. 选择要导入的文件 3. 指定导入选项 4. 选择导入目标 5. 预览数据 6. 导入数据即可。想了解更多access的相关内容,可以阅读本专题下面的文章。

2024.04.10

2965

10

access和trunk端口的区别
access和trunk端口的区别

access和trunk端口的区别是Access端口用于连接终端设备,提供单个VLAN的接入,而Trunk端口用于连接交换机之间,提供多个VLAN的传输;Access端口只传输属于指定VLAN的数据,而Trunk端口可以传输多个VLAN的数据,并使用VLAN标签进行区分。想了解更多access和trunk端口相关内容,可以阅读本专题下面的文章。

2023.10.31

428

3

asp连接access数据库的方法
asp连接access数据库的方法

连接的方法:1、使用ADO连接数据库;2、使用DSN连接数据库;3、使用连接字符串连接数据库。想了解更详细的asp连接access数据库的方法,可以阅读本专题下面的文章。

2023.10.18

1553

4

vb连接access数据库的方法
vb连接access数据库的方法

vb连接access数据库方法:1、使用ADO连接,首先导入System.Data.OleDb模块,然后定义一个连接字符串,接着创建一个OleDbConnection对象并使用Open() 方法打开连接;2、使用DAO连接,首先导入 Microsoft.Jet.OLEDB模块,然后定义一个连接字符串,接着创建一个JetConnection对象并使用Open()方法打开连接即可。

2023.10.16

2573

3

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1767

5

Aionclaw智能助手介绍
Aionclaw智能助手介绍

本专题汇总了AionClaw(AI龙虾助手)的功能介绍与在线使用入口。AionClaw是杭州趣猿人工智能有限公司推出的桌面级AI智能体,能直接在电脑上读写文件、运行脚本、操作浏览器,自动交付Word、PPT、Excel等成品。

2026.09.20

0

13

AionClaw AI智能体与电脑自动化任务执行功能使用教程
AionClaw AI智能体与电脑自动化任务执行功能使用教程

AionClaw专题整理AI智能体与电脑自动化相关功能使用教程,涵盖安装部署、AI任务执行、Skills技能、文件处理、浏览器控制、电脑操作、持久记忆、聊天工具连接以及办公、编程和内容创作等功能,帮助用户快速掌握AionClaw的实际使用方法。

2026.09.20

0

15

AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

2026.09.16

0

9

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 6.8万人学习