dshbase

插件目录 / Developer / dsh-email-push-master

dsh-email-push-master

未验证 JamesYasR

✓ 持续维护 基于 3 个官方 DSH 包

查看 GitHub ↗ ← 返回插件目录

0Stars
0Forks
0未关闭 issue
语言
2026-08-23最近推送
跨平台平台

功能简介

Developer 类别的 DeepSeek Harness 插件。

我们的评价
未验证 — 尚未实测

Developer 类别的 DeepSeek Harness 插件。 尚未验证——请自行安装测试。

「未验证」表示我们的自动化 CI 尚未安装过该插件。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

你是插件作者? 想拿到「已验证」标签——提交你自己的验证证据(截图、日志或短视频),我们审核通过后即改为「已验证」。

提交验证证据 ↗

README

dsh-email-push-master

English | 中文

Email reminders from your DSH agent when you're away from the computer.

You start a long-running goal in DSH (or any AI coding agent), then walk away. When the agent finishes, gets blocked, or needs your decision, it sends an email to your phone mailbox — you see it and come back. One-way ping, no remote control.

Origin & what changed

This is a fork of dsh-notify-skill (MIT, open source), hardened for stability:

  • removed the 535 retry loop (it amplified account risk-control lockout) and fixed a subject/text crash;
  • added connect/idle timeouts, a --check self-test, structured error classification, and full message headers.

See CHANGELOG.md.

Design: bundle a sender, avoid hand-written fallbacks

The skill ships one zero-dependency implementationsender.mjs (only Node built-ins tls/net), so the agent sends mail deterministically in every normal DSH session (DSH runs on Node). The sender has connect/idle timeouts, structured error classification (535/550/network), never retries 535 (retries amplify risk-control lockout), and full message headers. The SKILL.md still carries the full contract:

  • when to notify (goal done / blocked / before asking you a decision / long-task milestone),
  • what to write (specific, in your language, short),
  • the config contract (config.json: sender, SMTP authorization code, recipient; auto-inferred hosts for QQ/163 mail),
  • how to guide the user through getting an SMTP authorization code when the config is missing,
  • failure handling and security rules.

If Node is genuinely unavailable (rare), the agent should stop and tell the user rather than hand-writing SMTP; hand-written SMTP is the main source of intermittent 535 auth failures.

How it works

Moment Suggested marker
Goal completed done
Goal blocked / stuck block
About to ask the user a decision question
Long task milestone info

The agent MUST send via the bundled sender (do not hand-write SMTP):

node sender.mjs "subject" "body"          # reads config.json next to it and sends
node sender.mjs --check                   # verify config + SMTP auth only, no email

Knowledge note (Windows): .NET SmtpClient has a known hang on implicit-TLS port 465 — the bundled sender uses node:tls instead, which has no such issue.

Install (DSH)

Plugin install (recommended) — the skill ships as a DSH plugin and registers on ctx.skills:

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

Or from GitHub: dsh plugin --profile web add github:JamesYasR/dsh-email-push-master. Restart dsh web once after installing, then the skill appears in the session skill catalog.

Manual install (no plugin) — DSH also discovers skills from <dshHome>/skills/<name>/SKILL.md (default ~/.dsh/skills), hot-reloaded by a filesystem watcher:

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

Or copy the folder manually to ~/.dsh/skills/notify/. New sessions pick it up immediately.

Setup (one-time, ~5 minutes)

The agent will also walk you through this if you just ask it to use the skill.

  1. Get an SMTP authorization code (not your login password):
    • QQ Mail: web QQ Mail → 设置 → 账户 → enable "POP3/SMTP 服务" → generate a 16-char 授权码
    • 163 Mail: web 163 Mail → 设置 → POP3/SMTP/IMAP/SMTP → enable → create 授权码
  2. Copy config.example.json to config.json and fill it in:
    {
      "email": {
        "smtpHost": "",
        "smtpPort": 465,
        "useSsl": true,
        "from": "[email protected]",
        "authCode": "16-char authorization code",
        "to": "[email protected]"
      }
    }
    
    smtpHost may be left empty — it is inferred (@qq.comsmtp.qq.com, @163.comsmtp.163.com, port 465 SSL).
  3. Test: ask your agent to send a test notification (it will use the bundled sender).

Other agents (Claude Code, Codex, ...)

No compatibility work needed — modern agents are smart. Point them at SKILL.md and the config contract; they should use the bundled sender rather than re-implementing SMTP.

Security

  • config.json (contains your SMTP authorization code) and notify.log are gitignored — never force-commit them. A leaked authorization code lets anyone send mail as your mailbox.
  • The skill instructs agents to never print or commit the authorization code.

License

MIT

Quickstart

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

Restart dsh web, then open Settings → Plugins → 邮件推送 to configure provider / server / sender / auth code / recipient. Or run node sender.mjs --check for an auth self-test.

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-email-push-master」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

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

Headless(CLI)profile:

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

实测报告

尚未 L3 验证——若已跑过,见下方失败备注。

状态:pending · 最近测试 2026-08-27
备注:验证: runtime-fail 浏览全部待验证失败 →
安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7795 个插件 →