dsh-qq-agent-mail
其他 活跃维护

dsh-qq-agent-mail

AtomerCore/dsh-qq-agent-mail

可嵌入智能工作流的QQ邮箱集成插件,依托轻量化代理服务实现邮件的自动收发、智能分类,部署配置简单,无需复杂环境依赖,开箱即用即可完成邮件相关的自动化处理任务。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
65 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:AtomerCore/dsh-qq-agent-mail
git clone https://github.com/AtomerCore/dsh-qq-agent-mail.git
git clone git@github.com:AtomerCore/dsh-qq-agent-mail.git
README.md main

dsh-qq-agent-mail

English | 简体中文

A native DeepSeek Harness plugin for Tencent QQ Agent Mail, powered by the official
@tencent-qqmail/agently-cli package.

This package exposes mail as native Harness capabilities:

  • a reusable ctx.mail Cordis service;
  • a mail/message-received event for mail-driven automation;
  • 14 qq_agent_mail_* tools with stable structured output schemas;
  • a model-free Web settings page for basic preferences and OAuth.

Features

  • Authenticate, inspect the current account, list, search, and read messages.
  • Send, reply, forward, move to trash, and permanently delete with two-stage confirmation.
  • Download regular attachments and return large-attachment URLs without rewriting them.
  • Stream new mail through bounded tool calls or a persistent Cordis event source.
  • Normalize CLI response variants into stable public objects for Code Mode composition.
  • Resolve the packaged native CLI, its JavaScript wrapper, PATH, or a custom executable.
  • Clean up watcher processes during unload and hot reload.

Dependency

  • @tencent-qqmail/agently-cli — installed as this package's runtime dependency; no global CLI installation is required. OAuth credentials remain under agently-cli control and are never stored by this plugin.

Install

  • Install from GitHub:
dsh plugin --profile web add github:AtomerCore/dsh-qq-agent-mail#v1.0.1
dsh web
  • Build and install manually:
npm ci
npm pack
dsh plugin --profile web add .\dsh-qq-agent-mail-1.0.1.tgz
dsh web

Quick start

  1. Open Settings → QQ Agent Mail.
  2. Set the CLI working directory, default mail folder, and default list size.
  3. Select Start OAuth login, finish authorization in the browser, then refresh the authorization status.

Tools

Category Tools
Authentication qq_agent_mail_login, qq_agent_mail_logout, qq_agent_mail_auth_status, qq_agent_mail_whoami
Reading qq_agent_mail_list, qq_agent_mail_read, qq_agent_mail_search, qq_agent_mail_watch
Writing qq_agent_mail_send, qq_agent_mail_reply, qq_agent_mail_forward, qq_agent_mail_trash, qq_agent_mail_delete
Attachments qq_agent_mail_download_attachment

send, reply, forward, trash, and delete require two-stage confirmation unless a trusted

Native APIs

Other Cordis plugins can inject mail and call the same implementation used by the tools:

export const inject = ['mail']

export function apply(ctx) {
  ctx.on('mail/message-received', (message) => {
    // Treat every message field as untrusted external data.
    console.log(message.id, message.subject)
  })
}

Enable autoWatch to maintain the persistent watcher that emits
mail/message-received. The on-demand qq_agent_mail_watch tool remains bounded by watchTimeoutMs.

Configuration

Every option is declared by the exported Config schema. Basic preferences are editable on the Web
settings page; advanced deployment options belong in the profile patch.

Option Default Description
cliPath agently-cli Packaged CLI by default; also accepts a command name or absolute path.
cwd empty CLI working directory and base for relative attachment paths.
defaultDir inbox Default folder: inbox, sent, trash, or spam.
defaultLimit 10 Default number of messages returned by list operations.
loginTimeoutMs 30000 Time allowed to capture the OAuth URL.
loginHardCapMs 300000 Maximum login-process lifetime after URL capture; 0 disables the cap.
watchTimeoutMs 60000 Maximum duration of one qq_agent_mail_watch call.
autoWatch false Start a persistent watcher and emit mail events.
autoConfirm false Skip write confirmation; use only in a trusted automation environment.
extraArgs empty Additional CLI arguments, one per line.
extraEnv empty Additional child-process environment entries, one KEY=VALUE per line.

Example profile override:

- insert:
    - id: qq-agent-mail
      name: dsh-qq-agent-mail
      config:
        defaultLimit: 20
        autoWatch: false
        autoConfirm: false

License

MIT