在 DeepSeek Harness(DSH)中直接讀取郵件會消耗 token 並在會話中留下痕跡。dsh-email-board 通過直接調用 dsh-email 的 IMAP 連接池來展示未讀郵件,避免了對大模型的調用。
是什麼¶
這是 dsh-email-board 插件,由 Feizhaiqianqian 維護,採用 MIT 許可證。它的核心作用是將 dsh-email 各賬號的未讀郵件按賬號彙總成卡片列表,並展示在 Web 界面右側欄的「郵件看板」tab 裏。
核心功能¶
- 只讀模式:插件不會標記郵件已讀,不會刪除郵件,也不會發起發信請求。
- 不消耗 Token:數據直接取自
dsh-email的email_list實現(EmailPool.list(..., unreadOnly: true)),刷新不經過模型,不留痕跡。 - 手動刷新:頁面加載後默認不輪詢,需手動點擊刷新按鈕。
- 緩存機制:宿主側有
cacheMs短路緩存,防止頻繁點擊 IMAP 導致連接被打爆。
安裝¶
在安裝前,請確認 dsh-email 已啓用並配置好賬號,看板插件會讀取這些設置。
- 克隆本倉庫到本地。
- 打開 DSH 的「插件」頁面。
- 在安裝框中粘貼該目錄的絕對路徑。
- 安裝器會執行
pnpm add <路徑>並將插件追加到 profile 的dsh.profile.bundles。 - 重啓 DSH。
配置¶
在 profile 的 cordis.patch.yml 中,通過 id: email-board 覆蓋插件的默認配置項:
- id: email-board
name: dsh-email-board
config:
accounts: [] # 空數組表示讀取 dsh-email 配置的全部賬號
folder: "" # 空字符串表示讀取各賬號的 inboxFolder
perAccountLimit: 20 # 每個賬號最多展示的未讀信封數量(1-100)
cacheMs: 20000 # 宿主側結果緩存時間(毫秒)
timeoutMs: 25000 # 單賬號 IMAP 超時時間(毫秒)
使用方法¶
- 打開右側欄(點擊會話 header 右上角的展開按鈕或使用快捷鍵)。
- 在開始頁點擊「郵件看板」膠囊。
- 進入 tab 後,列表展示各賬號的未讀郵件卡片(包含發件人、主題、時間)。
- 點擊右上角「刷新」按鈕重新讀取數據。
注意事項¶
- 只統計指定文件夾:目前只統計各賬號的
inboxFolder(或folder指定的那一個),不遍歷全部文件夾。 - 數量限制:當單賬號未讀數超過
perAccountLimit時,只顯示最新若干封,並標註限制信息。 - 無定時輪詢:插件當前沒有定時自動刷新功能。
- 開發限制:
file:安裝方式是快照,源碼修改後需重啓 DSH 才能生效;開發時建議使用link:方式。 - 隱私安全:未讀郵件的標題和發件人是隱私數據,只讀路由帶有同源判定(
Sec-Fetch-Site檢查),防止任意網頁惡意讀取。
總結¶
dsh-email-board 解決了 DSH 用戶在不消耗 token 的情況下快速查看多賬號未讀郵件的需求。它依賴 dsh-email 的現有實現,通過 Web 界面提供輕量級的看板視圖,適合需要在開發過程中快速確認郵件狀態的場景。