dsh-email-push-master

by JamesYasR

通知与集成github 检测到 manifest package.json#dsh 社区精选 收录于 08-17

DSH agent 在你离开时发邮件提醒:稳定 SMTP(无 535 重试循环)、连接与空闲超时及 --check 自检

Email reminders from your DSH agent when you are away, with stable SMTP (no 535 retry loop), connect and idle timeouts, and a --check self-test.

安装

dsh plugin --profile web add github:JamesYasR/dsh-email-push-master

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

English | 中文

你不在电脑前时,agent 用邮件提醒你回来。

你在 DSH(或其他 AI 编码 agent)里派一个长任务 goal,然后离开电脑。当 agent 完成、卡住、或需要你决策时,它发一封邮件到你手机邮箱——你看到就回来。单向通知,不做远程指挥。

来源与修复

本项目是 dsh-notify-skill 的 fork(MIT 开源),做了稳定性加固:

  • 去掉 535 自动重试(旧版会把账号越试越锁)、修复 subject/text 崩溃;
  • 新增连接/空闲超时、--check 自检、结构化错误分类、完整邮件头。

详见 CHANGELOG.md。

设计理念:自带发送器,避免手写兜底

本 skill 打包一个零依赖实现——sender.mjs(只用 Node 内置 tls/net),让 agent 在每个正常 DSH 会话里都能确定地发信(DSH 本身就跑在 Node 上)。发送器内置:连接/空闲超时、结构化错误分类(535/550/网络)、535 绝不重试(避免触发账号风控)、完整邮件头。SKILL.md 仍然承载完整契约:

  • 何时通知(goal 完成 / 阻塞 / 提问决策前 / 长任务节点),
  • 写什么(具体、用你的语言、简短),
  • 配置契约(config.json:发件邮箱、SMTP 授权码、收件邮箱;QQ/163 邮箱自动推断服务器),
  • 配置缺失时如何引导用户获取 SMTP 授权码,
  • 故障处理与安全规则。

万一 Node 真的不可用(极少见),agent 应该停下来告诉用户,而不是手写 SMTP;手写 SMTP 正是间歇性 535 认证失败的主要来源。

触发时机

时机 建议标记
goal 完成 done
goal 阻塞/卡住 block
即将向你提问决策时 question
长任务关键节点 info

agent 必须通过自带的发送器发信(不要自己手写 SMTP):

node sender.mjs "标题" "正文"          # 读取旁边的 config.json 并发送
node sender.mjs --check               # 只验证配置 + SMTP 认证,不真正发信

经验备注(Windows):.NET SmtpClient 在 465 隐式 TLS 上有已知挂起问题——自带发送器改用 node:tls,无此问题。

安装(DSH)

插件安装(推荐) —— 本 skill 以 DSH 插件形式发布,自动注册到 ctx.skills:

dsh plugin --profile web add dsh-email-push-master

或用 GitHub 源:dsh plugin --profile web add github:JamesYasR/dsh-email-push-master。装完重启一次 dsh web,会话 skill 目录里就会出现它。

手动安装(不装插件) —— DSH 也会从 <dshHome>/skills/<name>/SKILL.md 发现 skill(默认 ~/.dsh/skills),文件监视器热加载:

git clone https://github.com/JamesYasR/dsh-email-push-master.git "$HOME/.dsh/skills/notify"

也可以手动把文件夹复制到 ~/.dsh/skills/notify/。新会话立即生效。

配置(一次性,约 5 分钟)

直接让 agent 用这个 skill,它也会引导你完成。

  1. 获取 SMTP 授权码(不是登录密码):
    • QQ 邮箱:网页版 → 设置 → 账户 → 开启「POP3/SMTP 服务」→ 生成 16 位授权码
    • 163 邮箱:网页版 → 设置 → POP3/SMTP/IMAP/SMTP → 开启 → 新增授权码
  2. 复制 config.example.json 为 config.json 并填写:
    {
      "email": {
        "smtpHost": "",
        "smtpPort": 465,
        "useSsl": true,
        "from": "your-address@qq.com",
        "authCode": "16位授权码",
        "to": "recipient@example.com"
      }
    }
    
    smtpHost 可留空,按地址自动推断(@qq.com → smtp.qq.com,@163.com → smtp.163.com,465 SSL)。
  3. 测试:让 agent 发一条测试通知即可(它会调用自带的发送器)。

其他 agent(Claude Code、Codex 等)

无需任何兼容工作——现在的 agent 很聪明,把 SKILL.md 和配置契约指给它;让它使用自带的发送器,不要重新实现 SMTP。

安全

  • config.json(含你的 SMTP 授权码)和 notify.log 已 gitignore——绝不要强推入库。授权码泄露等于别人能用你的邮箱发信。
  • skill 指令要求 agent 绝不打印或提交授权码。

License

MIT

快速开始

dsh plugin --profile web add github:JamesYasR/dsh-email-push-master

装完重启 dsh web,到 设置 → 插件 → 邮件推送 里填写服务商 / 发送服务器 / 发件邮箱 / 密钥 / 收件邮箱即可;也可用 node sender.mjs --check 做认证自检。

原始 README: https://github.com/JamesYasR/dsh-email-push-master/blob/main/README.zh.md ↗

同类插件

查看全部 →
通知与集成alvinunreal

dsh

将 DeepSeek Harness 的生命周期状态、错误与审批请求,桥接到本地运行的 OpenPets 桌面伙伴。

查看详情
1081github+08-21
通知与集成tencent-connect

dsh-qqbot

让 QQ Bot 接入 DeepSeek Harness(dsh)的官方插件

查看详情
55github+08-17
通知与集成omdsh-dev

dsh-open-in-vscode

从 Web GUI 一键在 VS Code 中打开工作区目录。

查看详情
39github+08-13
通知与集成omdsh-dev

dsh-notification

回合完成桌面通知,按结果分控 + 关键词过滤。

查看详情
38github+08-13
通知与集成THEWOLFWALKER

dsh-notifier

DSH 统一通知推送与远程控制:一个 `notify()` API 打通 25+ 渠道(Telegram / 钉钉 / 飞书 / 企业微信 / QQ 机器人 / WxPusher / PushPlus / Server 酱 / Bark / Discord / Slack / ntfy / webhook 等),timeSensitive / active / passive 分级路由并重试;五通道反向审批(Telegram 按钮 / 飞书卡片 / QQ / WxPusher / 微信 iLink);QQ/钉钉/飞书官方扫码登录;本地 Web 管理台;多 agent 路由;系统桌面通知——以及**手机指挥中心**:在手机上发 `!status` / `!stop` / `!retry` 遥控 agent,通知带可操作按钮(查看结果 / 重试 / 日志,点击回调 agent)。密钥脱敏、工具限流、零运行时依赖。

查看详情
27github+08-16
通知与集成wzj998

chatccc

飞书(Lark)或微信(WeChat)聊天控制 DeepSeek Harness / Claude Code / Cursor / Codex / CCC Agent

查看详情
22github+08-23