dsh-mail:爲 DSH 智能體提供多後端郵件發送與收件能力

前言

在 DeepSeek Harness(DSH)裏跑智能體時,發郵件、讀收件箱、批量個性化投遞往往要單獨寫腳本或接各家 API。dsh-mail 把發送、定時隊列、CSV 批量、域名列表和(部分後端的)收件讀信收進同一套插件:宿主側暴露 Agent 工具,Web 側提供 Mail 側邊欄,並支持 Lettermint、AgentMail、Resend、OVH SMTP、手動 SMTP、本地自建 SMTP 六種傳輸後端。下面介紹它是什麼、能做什麼,以及如何按官方 README 安裝與配置。

這是什麼

dsh-mail 是維護者 lucagiftzek(Loukas “Luca” Tzekos)發佈的 DSH 插件,歸類爲聯網工具。當前 package.json 版本爲 0.1.0,許可證 MIT;要求 Node.js >= 22.5,DSH 引擎 >= 0.1.1-rc.1。插件在宿主側實現工具、設置與路由,在瀏覽器側通過 dsh-better-sidebar 注入 Mail 標籤頁(順序 91),供人工發測試信、看隊列、配憑證,同時讓智能體通過工具調用完成郵件相關任務。

多後端與能力邊界

README 用表格列出了六種 Provider,認證方式與是否支持收件讀信如下(OVH / smtp / local 的 IMAP 讀信標註爲 planned):

ID 後端 認證 收件讀信
lettermint Lettermint API x-lettermint-token 否
agentmail AgentMail API Bearer 是
resend Resend API Bearer 否
ovh OVH SMTP 用戶名/密碼 IMAP(計劃中)
smtp 手動 SMTP 用戶名/密碼 IMAP(計劃中)
local 自建 SMTP 用戶名/密碼 IMAP(計劃中)

憑證不會硬編碼在倉庫裏,而是在調用時從配置與 estate 文件合併讀取;settings 裏非空字段優先於自動發現的憑證。

Agent 工具

智能體可調用的工具包括:

  • mail_send — 發送單封郵件
  • mail_mass_send — 基於 CSV 的個性化批量發送,支持郵件間隔
  • mail_send_later — 將郵件加入未來發送的定時隊列
  • mail_read — 讀取近期收件(AgentMail)
  • mail_fetch — 按 ID 拉取單條消息
  • mail_domains — 列出可用發信域名/收件箱
  • mail_list_queue — 列出隊列條目
  • mail_cancel — 取消已排隊或已調度的郵件

此外插件支持隊列管理與 CSV 解析、模板個性化(見架構中的 staging 模塊),以及可人工審覈的排隊發送流程(README 摘要中的 queue emails for manual review)。

Mail 側邊欄

Mail 標籤頁包含:

  • Overview:各 Provider 狀態、隊列數量概覽
  • Queue:待發送、已發送、失敗、已取消條目,支持立即發送 / 取消
  • Send:撰寫併發送測試郵件
  • Settings:配置各 Provider 憑證與限制

安裝與啓用

官方 README 的安裝方式是從源碼目錄構建並掛到 web profile,而不是簡單的 dsh plugin add 一行命令。先做依賴安裝與前端打包,再改 profile 的 package.json。

在插件目錄執行:

cd /opt/stacks/llm/plugins/dsh-mail
pnpm install   # dev deps (esbuild)
pnpm build     # bundle src/client.jsx → lib/client.js

在 ~/.dsh/profiles/web/package.json 中增加依賴與 bundle 條目:

# In ~/.dsh/profiles/web/package.json, add to dependencies:
"   \"dsh-mail\": \"file:/opt/stacks/llm/plugins/dsh-mail\","

# And to the bundles array:
"   \"dsh-mail\","

然後在 web profile 目錄安裝依賴:

pnpm install --dir ~/.dsh/profiles/web

完成後需重啓 dsh-web 才能掛載插件。若當前會話本身運行在 dsh-web 內,重啓前應先與用戶確認。

設置與憑證發現

配置寫在 ~/.dsh/settings.yaml 的 dsh-mail 命名空間下。首次使用時,插件會從 estate 文件自動填充部分憑證,例如:

  • Lettermint:~/.config/lettermint/credentials(LETTERMINT_API_KEY)
  • AgentMail:~/.config/agentmail/credentials(AGENTMAIL_API_KEY、AGENTMAIL_TEST_INBOX)

README 強調憑證僅在調用時讀取並與 settings 合併,倉庫與 settings 中不應寫入密鑰明文。

禁用插件

需要臨時關閉時,可設置環境變量 DSH_MAIL_DISABLE=1,或在 cordis 中設置 disabled: true。

代碼結構(便於審閱)

lib/index.js      host half — tools, settings, routes, timer
lib/providers.js  multi-provider transport layer
lib/staging.js    queue management, CSV parsing, template personalisation
lib/security.js   4-layer route security (loopback, trust fence, capability, cookie)
src/client.jsx    browser half — sidebar tab UI
scripts/build.mjs esbuild bundler

更完整的設計說明見倉庫內 docs/DESIGN.md。

適用場景與注意

適合需要在 DSH Web 界面與 Agent 工具鏈中統一處理發信、批量個性化、定時隊列和(AgentMail)讀收件的場景,且已具備或願意配置上述某一後端憑證的開發者。

插件以當前 dsh 進程權限運行,安裝前應自行閱讀源碼與 MIT 許可證,確認路由安全層(loopback、trust fence、capability、cookie)是否符合你的部署邊界。社區插件目錄站點 skillhub.cn 與 DeepSeek / 幻方無官方從屬關係;星標與生態數據以各頁面當時展示爲準(GitHub 上該倉庫當前爲 0 star)。

鏈接

  • 目錄頁:https://www.skillhub.cn/plugins/lucagiftzek/dsh-mail
  • 源碼與 README:https://github.com/lucagiftzek/dsh-mail

dsh-mail 把多 Provider 郵件能力收斂成 DSH 插件:工具供智能體調用,側邊欄供運維與測試,隊列與 CSV 批量則覆蓋常見自動化發信路徑;按 README 構建並掛入 web profile 即可啓用。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜