STARDUSTLC666/dsh-email ↗★ 16

dsh-email

IMAP/SMTP邮件收发与管理工具 适合需要通过DSH进行多账号邮件收发、搜索、回复及发信审批的用户。

包名
dsh-email
兼容性
待验证
版本
0.14.5
许可证
MIT
最近更新
2026年10月1日

同名包的其他仓库

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:STARDUSTLC666/dsh-email

配置

在你 profile 的 cordis.patch.yml 里覆盖 tool-email 行(在 $DSH_HOME/profiles// 下),然后重启:

- id: tool-email
  config:
    provider: qq          # qq | 163 | 126 | sina | aliyun | gmail | outlook | icloud
    user: you@qq.com
    password: 你的授权码   # 强烈建议改用环境变量 DSH_EMAIL_PASSWORD,见下

不需要预设?手填任意 IMAP/SMTP 服务器即可:

- id: tool-email
  config:
    user: you@corp.example
    password: 你的授权码
    imap: { host: imap.corp.example, port: 993, secure: true }
    smtp: { host: smtp.corp.example, port: 465, secure: true }
    inboxFolder: INBOX

多账号:一个 tool-email 行可以配多个邮箱,工具调用时用 account 参数选择:

- id: tool-email
  config:
    accounts:
      work: { provider: qq, user: work@qq.com, password: 授权码1 }
      home: { provider: '163', user: home@163.com, password: 授权码2 }
    defaultAccount: work        # 省略 account 参数时用这个
    downloadDir: E:/attachments # 可选,默认 $DSH_HOME/email-downloads

顶层的 provider/user/password/imap/smtp/inboxFolder 仍兼容旧单账号写法。具名账号声明自己的 provider 时,服务器取该预设,账号自己的 imap/smtp 显式覆盖优先;未声明服务商的账号继续继承顶层服务器。共享连接超时仍可生效。

想在多个账号之间复用同一套连接端点,可以用 serverPresets 自定义服务商预设(YAML 映射,键 = 预设名,值含可选的 label 与 imap/smtp):

- id: tool-email
  config:
    serverPresets: |
      corp:
        label: 公司邮箱
        imap: { host: imap.corp.example, port: 993, secure: true }
        smtp: { host: smtp.corp.example, port: 465, secure: true }

设置页的「服务器预设」折叠区能可视化增删改这些预设,账号卡片的服务商下拉里会自动多出预设名,选中即把端点预填进账号。预设只记连接参数,不含邮箱地址和授权码;port/secure 可省略(默认 993/465 与 SSL)。

常用邮箱预设

providerIMAPSMTP
qqimap.qq.com:993 (SSL)smtp.qq.com:465 (SSL)
163imap.163.com:993smtp.163.com:465
126imap.126.com:993smtp.126.com:465
sinaimap.sina.com:993smtp.sina.com:465
aliyunimap.aliyun.com:993smtp.aliyun.com:465
gmailimap.gmail.com:993smtp.gmail.com:465
outlookoutlook.office365.com:993smtp.office365.com:587 (STARTTLS)
icloudimap.mail.me.com:993smtp.mail.me.com:587 (STARTTLS)

完整配置项

字段默认说明
provider无预设名,自动填 imap/smtp 地址;显式写的 host/port/secure 优先
user必填登录邮箱地址
password必填*授权码/应用专用密码;*也可用环境变量 DSH_EMAIL_PASSWORD
senderName无发件显示名:只改收件人看到的名称,发件地址仍是 user
authUser= user登录账号。别名 / SMTP 中继场景:user 是发件地址,这里填真正用于 IMAP/SMTP 认证的账号
authPassword= passwordauthUser 对应的密码;只有登录账号与 user 不同、且密码也不一样时才需要
imap.host/port/secure按预设收信服务器(另有 connectionTimeoutMs/socketTimeoutMs 可调超时)
smtp.host/port/secure按预设发信服务器
inboxFolderINBOX收发工具默认使用的文件夹
sendApprovaltrue发信前弹确认(强烈建议保留)
maxBodyChars20000email_read 正文截断上限(1000–200000)
accounts无具名账号表;账号级字段覆盖顶层简写
accountsYaml无账号映射的 YAML 文本,由设置页的卡片编辑器写入;非空时覆盖 accounts
clientId内置社区应用(见下)OAuth2 账号的应用(客户端)ID:留空即用插件内置的公共客户端,填了则覆盖内置值(账号级也可覆盖顶层简写)
authKind按 provider 派生认证方式覆盖,取值 oauth2 / password。缺省时按 provider 与 IMAP 主机派生;仍能用应用密码连 Exchange Online 的混合或本地租户可钉 password。设置页卡片的「认证方式」选择器即写此键
serverPresets无自定义服务商预设的 YAML 文本(键=预设名,值含 label?/imap/smtp);只存端点、不含凭证,设置页下拉会列出预设名并把端点预填进账号卡片,改预设不会重连已建立的连接
defaultAccount单账号时自动工具省略 account 参数时使用的账号(多账号必填)
downloadDir会话工作区下 .dsh-email-downloads(回退 $DSH_HOME/email-downloads)email_attachment 的落盘目录;显式设置后固定
maxAttachmentBytes20 MiB单个附件与附件总大小上限(1024–512 MiB)
idleTimeoutMs60000IMAP 空闲连接回收时间(连接复用,连续操作更快)
bodySearchFallbacktrue服务器搜索无结果时,回退到客户端扫描最近邮件的正文
bodySearchLimit30正文回退扫描的邮件数量(5-200)

完整配置项

字段默认说明
provider无预设名,自动填 imap/smtp 地址;显式写的 host/port/secure 优先
user必填登录邮箱地址
password必填*授权码/应用专用密码;*也可用环境变量 DSH_EMAIL_PASSWORD
senderName无发件显示名:只改收件人看到的名称,发件地址仍是 user
authUser= user登录账号。别名 / SMTP 中继场景:user 是发件地址,这里填真正用于 IMAP/SMTP 认证的账号
authPassword= passwordauthUser 对应的密码;只有登录账号与 user 不同、且密码也不一样时才需要
imap.host/port/secure按预设收信服务器(另有 connectionTimeoutMs/socketTimeoutMs 可调超时)
smtp.host/port/secure按预设发信服务器
inboxFolderINBOX收发工具默认使用的文件夹
sendApprovaltrue发信前弹确认(强烈建议保留)
maxBodyChars20000email_read 正文截断上限(1000–200000)
accounts无具名账号表;账号级字段覆盖顶层简写
accountsYaml无账号映射的 YAML 文本,由设置页的卡片编辑器写入;非空时覆盖 accounts
clientId内置社区应用(见下)OAuth2 账号的应用(客户端)ID:留空即用插件内置的公共客户端,填了则覆盖内置值(账号级也可覆盖顶层简写)
authKind按 provider 派生认证方式覆盖,取值 oauth2 / password。缺省时按 provider 与 IMAP 主机派生;仍能用应用密码连 Exchange Online 的混合或本地租户可钉 password。设置页卡片的「认证方式」选择器即写此键
serverPresets无自定义服务商预设的 YAML 文本(键=预设名,值含 label?/imap/smtp);只存端点、不含凭证,设置页下拉会列出预设名并把端点预填进账号卡片,改预设不会重连已建立的连接
defaultAccount单账号时自动工具省略 account 参数时使用的账号(多账号必填)
downloadDir会话工作区下 .dsh-email-downloads(回退 $DSH_HOME/email-downloads)email_attachment 的落盘目录;显式设置后固定
maxAttachmentBytes20 MiB单个附件与附件总大小上限(1024–512 MiB)
idleTimeoutMs60000IMAP 空闲连接回收时间(连接复用,连续操作更快)
bodySearchFallbacktrue服务器搜索无结果时,回退到客户端扫描最近邮件的正文
bodySearchLimit30正文回退扫描的邮件数量(5-200)