前言¶
DeepSeek Harness 的核心设计理念是“一切皆插件”。在构建需要调用外部数据的智能体时,邮件系统是高频场景之一。然而,微软从 2024 年 9 月起停止了对个人 Outlook.com 账号的 IMAP 基本认证(用户名+密码),仅接受 OAuth2。市面上多数邮件插件(包括市场版 dsh-email)仍依赖密码登录,导致开发者无法通过这些插件读取 Outlook 邮件。DSH-EmailReader 旨在补齐这一缺口,为 DSH 提供原生支持 OAuth2 的邮件读取能力。
简介¶
DSH-EmailReader 是 DeepSeek Harness IMAP 邮件读取插件(OAuth2 版)。该项目由 huaxiren6 维护,分类为联网工具,采用 MIT 许可证。插件基于 imapflow 库连接任意 IMAP 邮箱,让模型具备读邮件的能力。
核心功能¶
插件提供三个核心工具,全部以 ol_email_ 为前缀注册,确保与市场版插件不冲突:
- ol_email_list:列出收件箱最近邮件。返回信息包括发件人、主题、时间、旗标。
- ol_email_read:读取单封邮件全文。支持自动解析 MIME,兼容 Outlook 服务器。
- ol_email_search:服务端 IMAP 全文搜索。搜索结果按最新优先排序。
其他特性包括支持多账号、OAuth2 认证、HTTP/SOCKS 代理,以及统一返回 { ok, ... } 格式,绝不抛异常。
安装¶
使用官方命令安装:
dsh plugin --profile web add dsh-email-reader
配置¶
插件支持 OAuth2 和密码两种认证方式,并提供环境变量配置选项。
OAuth2 认证(推荐)¶
适用于微软等强制 OAuth 的邮箱。配置需包含 refreshToken、clientId 和 tokenUrl。
- insert:
- id: email-reader
name: dsh-email-reader
config:
accounts:
- id: outlook
host: outlook.office365.com
port: 993
user: you@outlook.com
refreshToken: "从 OAuth 授权流程获取"
clientId: "你的应用 Client ID"
tokenUrl: "https://login.microsoftonline.com/common/oauth2/v2.0/token"
mailbox: INBOX
密码认证¶
适用于仍支持密码登录的 IMAP 服务器。
- insert:
- id: email-reader
name: dsh-email-reader
config:
host: imap.example.com
port: 993
user: you@example.com
pass: your-app-password
tls: true
mailbox: INBOX
代理设置¶
遇到网络限制(如教育网访问 Gmail)时,可配置代理。
- insert:
- id: email-reader
name: dsh-email-reader
config:
accounts:
- id: gmail
host: imap.gmail.com
port: 993
user: you@gmail.com
pass: your-app-password
proxy: "http://127.0.0.1:7892"
mailbox: INBOX
环境变量¶
若需凭据不落盘,可使用环境变量:
DSH_IMAP_HOST、DSH_IMAP_PORT、DSH_IMAP_USER、DSH_IMAP_PASS、DSH_IMAP_TLS、DSH_IMAP_MAILBOX、DSH_IMAP_OAUTH_REFRESH、DSH_IMAP_CLIENT_ID、DSH_IMAP_TOKEN_URL、DSH_IMAP_PROXY。
使用示例¶
在 DSH 中调用以下工具即可完成邮件操作:
- 查看邮件列表:调用
ol_email_list。 - 读取邮件内容:调用
ol_email_read。 - 搜索邮件:调用
ol_email_search。
注意事项¶
- 插件与市场版
dsh-email共存,工具名前缀为ol_email_*,避免命名冲突。 - 适用于微软自 2024 年 9 月后强制 OAuth 的场景。
- 插件运行时使用当前 DSH 进程的权限,安装前建议检查源码与许可证。
总结¶
该插件解决了 OAuth2 时代的邮件访问问题,为开发者提供了稳定、兼容的邮件读取能力。完整文档与源码可参考项目目录与 GitHub 仓库。