前言¶
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 倉庫。