wuuuuu123-32/dsh-mailbox-notify ↗★ 0

dsh-mailbox-notify

任务跑完或审批卡住时自动发送邮件通知到手机。 适合不在DSH界面前等待的用户,通过邮件接收任务完成或审批等待提醒,需配置邮件服务。

包名
dsh-mailbox-notify
兼容性
待验证
版本
1.2.0
许可证
MIT
最近更新
2026年10月11日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:wuuuuu123-32/dsh-mailbox-notify

配置

把 config.example.json 复制到 ~/.dsh/mailbox-notify.json(Windows 是 C:\Users\你的名字\.dsh\mailbox-notify.json),填上你的邮箱:

{
  "channel": "mail",
  "mail": {
    "host": "smtp.qq.com",
    "port": 465,
    "user": "你的邮箱@qq.com",
    "pass": "你的SMTP授权码",
    "to": "你的邮箱@qq.com"
  },
  "imap": {
    "host": "imap.qq.com",
    "port": 993
  },
  "link": "https://你的-dsh-地址/"
}

link 填上你平时打开 dsh 的地址(比如 Tailscale 域名),邮件末尾就会多一行「处理:…」,在手机上点一下就能去点审批。

怎么拿 SMTP 授权码

授权码不是你的登录密码,是邮箱服务商发给第三方程序的专用密码。以 QQ 邮箱为例:

  1. 电脑登录 mail.qq.com → 设置 → 账户
  2. 找到「POP3/IMAP/SMTP...服务」,开启 SMTP 服务(要短信验证)
  3. 生成授权码,把那串 16 位字母填进 pass
  4. IMAP 通常是同一个开关,一起开着的

163、Gmail、Outlook 类似,搜「你的邮箱 + SMTP 授权码」就有官方教程。

全部配置项

key默认说明
channel"mail"mail / ntfy / both
notifyOn"goals"errors 只报错 / goals 默认 / all 每轮都发
longTaskMs180000超过这个毫秒数的轮次算"正经干活",也会通知
minToolCalls5一轮里工具调用达到这个次数也会通知(不依赖 goal)
debounceMs60000同类成功通知的最小间隔,防止刷屏
cleanupOldtrue发新通知前删掉旧的同前缀通知
mailTag"[dsh-notify]"通知邮件的主题前缀,IMAP 靠它识别自己的邮件
approvalTimeoutMs60000审批挂起多久后提醒;设 0 关掉审批提醒
approvalIncludeSubagentstrue子代理的审批要不要也提醒
questionTimeoutMs60000提问(ask_user_question)挂起多久后提醒;设 0 关掉提问提醒
questionIncludeSubagentstrue子代理的提问要不要也提醒
link""邮件末尾附带回 dsh 的链接,留空则不附
mail.*—SMTP 服务器、端口、账号、授权码、收件地址
imap.*imap.qq.com:993用来清理旧通知的 IMAP 服务器
ntfy.topic""填了才启用 ntfy 通道
timeoutMs25000网络操作超时

也可以用环境变量覆盖:DSH_NOTIFY_CHANNEL、DSH_NOTIFY_ON、DSH_NOTIFY_APPROVAL_MS、DSH_NOTIFY_QUESTION_MS、DSH_NOTIFY_LINK、DSH_NOTIFY_SMTP_HOST、DSH_NOTIFY_SMTP_USER、DSH_NOTIFY_SMTP_PASS、DSH_NOTIFY_MAIL_TO 等(完整列表见源码 resolveConfig)。

全部配置项

key默认说明
channel"mail"mail / ntfy / both
notifyOn"goals"errors 只报错 / goals 默认 / all 每轮都发
longTaskMs180000超过这个毫秒数的轮次算"正经干活",也会通知
minToolCalls5一轮里工具调用达到这个次数也会通知(不依赖 goal)
debounceMs60000同类成功通知的最小间隔,防止刷屏
cleanupOldtrue发新通知前删掉旧的同前缀通知
mailTag"[dsh-notify]"通知邮件的主题前缀,IMAP 靠它识别自己的邮件
approvalTimeoutMs60000审批挂起多久后提醒;设 0 关掉审批提醒
approvalIncludeSubagentstrue子代理的审批要不要也提醒
questionTimeoutMs60000提问(ask_user_question)挂起多久后提醒;设 0 关掉提问提醒
questionIncludeSubagentstrue子代理的提问要不要也提醒
link""邮件末尾附带回 dsh 的链接,留空则不附
mail.*—SMTP 服务器、端口、账号、授权码、收件地址
imap.*imap.qq.com:993用来清理旧通知的 IMAP 服务器
ntfy.topic""填了才启用 ntfy 通道
timeoutMs25000网络操作超时

也可以用环境变量覆盖:DSH_NOTIFY_CHANNEL、DSH_NOTIFY_ON、DSH_NOTIFY_APPROVAL_MS、DSH_NOTIFY_QUESTION_MS、DSH_NOTIFY_LINK、DSH_NOTIFY_SMTP_HOST、DSH_NOTIFY_SMTP_USER、DSH_NOTIFY_SMTP_PASS、DSH_NOTIFY_MAIL_TO 等(完整列表见源码 resolveConfig)。