Token导航 LogoToken导航TokenDH.com
Mail Smtp MCP Rs logo
安全风控stdio官方级别未说明来源级核验

Mail Smtp MCP Rs

MCP Server

@bradsjm/mail-smtp-mcp-rs@latest

一个安全的SMTP协议服务器,支持多账户配置和策略限制的邮件发送功能。

工具数

2

提示词数

0

GitHub Stars

1

资源数

0
安全Rust开发工具

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

bradsjm

提供方

bradsjm

最后核验

2026/5/17 20:23

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx -y @bradsjm/mail-smtp-mcp-rs@latest

详细介绍

邮件smtp-mcp-rs

mail-smtp-mcp-rs 是一个在stdio上运行的安全SMTP模型上下文协议(MCP)服务器。 它提供了一个专注的工具界面,用于列出配置的SMTP帐户和发送受策略限制的电子邮件。

特性

  • SMTP聚焦MCP表面:两个工具, smtp_list_accountssmtp_send_message
  • 默认情况下,发送门是安全的:实时发送被阻止,除非 MAIL_SMTP_SEND_ENABLED=true
  • 政策执行:收件人分配列表和可配置的收件人、邮件大小、正文大小和附件限制
  • 输入硬化:严格的电子邮件验证、CR/LF头注入检查、严格的base64解码和安全附件文件名检查
  • 结构化响应:信封与 summary, data,和执行 meta
  • 多账户支持:发现和路由 MAIL_SMTP__* 环境部分
  • Rust+tokio运行时:异步MCP服务器实现 rmcp

安装

选择一种受支持的安装方法。

支持的发布工件:

  • macOS: aarch64-apple-darwin, x86_64-apple-darwin
  • Linux: x86_64-unknown-linux-gnu, x86_64-unknown-linux-musl
  • 窗户: x86_64-pc-windows-msvc

Linux musl支持包括 x86_64 Alpine等系统。不支持Linux ARM64 npm安装。

NPX(推荐)

npx -y @bradsjm/mail-smtp-mcp-rs@latest

或全局安装:

npm install -g @bradsjm/mail-smtp-mcp-rs
mail-smtp-mcp-rs

Curl安装程序(Linux/macOS)

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/bradsjm/mail-smtp-mcp-rs/releases/download/v0.1.0/mail-smtp-mcp-rs-installer.sh | sh

更安全的替代方案(下载、检查,然后运行):

curl --proto '=https' --tlsv1.2 -LsSf -o mail-smtp-mcp-rs-installer.sh https://github.com/bradsjm/mail-smtp-mcp-rs/releases/download/v0.1.0/mail-smtp-mcp-rs-installer.sh
sh mail-smtp-mcp-rs-installer.sh

码头工人

从GHCR中拉出并运行:

docker pull ghcr.io/bradsjm/mail-smtp-mcp-rs:latest
docker run --rm -i --env-file .env ghcr.io/bradsjm/mail-smtp-mcp-rs:latest

本地构建:

docker build -t mail-smtp-mcp-rs .
docker run --rm -i --env-file .env mail-smtp-mcp-rs

来源

cargo install --path .

二进制路径: ~/.cargo/bin/mail-smtp-mcp-rs.

快速开始

1) 配置帐户和策略环境变量

启动时至少需要一个SMTP帐户部分。

# Required account section
MAIL_SMTP_DEFAULT_HOST=smtp.example.com
MAIL_SMTP_DEFAULT_USER=your-user
MAIL_SMTP_DEFAULT_PASS=your-app-password

# Optional account fields
MAIL_SMTP_DEFAULT_PORT=587
MAIL_SMTP_DEFAULT_SECURE=false
MAIL_SMTP_DEFAULT_FROM=noreply@example.com

# Global policy
MAIL_SMTP_SEND_ENABLED=false
MAIL_SMTP_ALLOWLIST_DOMAINS=
MAIL_SMTP_ALLOWLIST_ADDRESSES=
MAIL_SMTP_MAX_RECIPIENTS=10
MAIL_SMTP_MAX_MESSAGE_BYTES=2500000
MAIL_SMTP_MAX_ATTACHMENTS=5
MAIL_SMTP_MAX_ATTACHMENT_BYTES=2000000
MAIL_SMTP_MAX_TEXT_CHARS=20000
MAIL_SMTP_MAX_HTML_CHARS=50000
MAIL_SMTP_CONNECT_TIMEOUT_MS=10000
MAIL_SMTP_SOCKET_TIMEOUT_MS=20000

在您的提供商要求的地方使用应用程序密码或服务凭据。

2) 将服务器连接到MCP客户端

MCP配置示例:

{
  "mcpServers": {
    "mail-smtp": {
      "command": "npx",
      "args": ["-y", "@bradsjm/mail-smtp-mcp-rs@latest"],
      "env": {
        "MAIL_SMTP_DEFAULT_HOST": "smtp.example.com",
        "MAIL_SMTP_DEFAULT_USER": "your-user",
        "MAIL_SMTP_DEFAULT_PASS": "your-app-password",
        "MAIL_SMTP_DEFAULT_FROM": "noreply@example.com",
        "MAIL_SMTP_SEND_ENABLED": "false"
      }
    }
  }
}

3) 仅在准备就绪时启用发送

默认情况下,实时交付被故意禁用:

MAIL_SMTP_SEND_ENABLED=true

多个帐户

从以下位置发现帐户ID MAIL_SMTP__... 按键并标准化为小写。

# Default account
MAIL_SMTP_DEFAULT_HOST=smtp.gmail.com
MAIL_SMTP_DEFAULT_USER=user@gmail.com
MAIL_SMTP_DEFAULT_PASS=app-password

# Work account
MAIL_SMTP_WORK_HOST=smtp.office365.com
MAIL_SMTP_WORK_USER=user@company.com
MAIL_SMTP_WORK_PASS=work-password
MAIL_SMTP_WORK_SECURE=true
MAIL_SMTP_WORK_PORT=465

工具参考

所有工具都返回一个共同的信封:

{
  "summary": "Human-readable outcome",
  "data": {},
  "meta": {
    "now_utc": "2026-03-01T12:34:56Z",
    "duration_ms": 42
  }
}
工具目的
smtp_list_accounts列出已配置的帐户元数据(account_id、主机、端口、安全、可选默认发件人)
smtp_send_message验证并发送一条消息,可选 cc, bcc, reply_to, html_body,以及附件

有关完整的架构级别详细信息和验证规则,请参阅 docs/tool-controll.md.

消息和策略限制

硬安全帽在规范中强制执行:

  • 最多收件人数:50
  • 最大附件数:10
  • 每个附件的最大字节数:5000000
  • 最大文本字符数:100000
  • 最大HTML字符数:200000
  • 主题长度:1..=256个字符

策略上限可由env配置,并且可能比硬上限更严格。

故障排除

启动失败,缺少配置

服务器需要至少一个完整的帐户(HOST, USER, PASS).

发送已禁用

如果 smtp_send_message 返回一个发送禁用错误,set:

MAIL_SMTP_SEND_ENABLED=true

帐户查找失败

account_id 匹配不区分大小写,并标准化为小写。验证帐户部分是否存在并包含所需的密钥。

SMTP连接或发送失败

检查主机/端口/安全设置、凭据和网络可达性。调音:

  • MAIL_SMTP_CONNECT_TIMEOUT_MS
  • MAIL_SMTP_SOCKET_TIMEOUT_MS

npm安装或npx在不受支持的平台上失败

已发布的npm包仅支持上面列出的发布工件。常见的不受支持的情况包括Linux ARM64和Windows ARM64。

在Linux上 x86_64,支持glibc和musl环境。对于其他平台,如果需要在已发布的npm矩阵之外运行服务器,请使用Docker或从源代码安装。

安全说明

  • 工具响应中不会返回机密。
  • 密码值在帮助诊断中被编辑。
  • 收件人策略执行支持域和精确地址分配列表。
  • 附件处理验证文件名安全性、内容类型解析和严格的base64输入。

发展

贡献者指导和验证流程记录在 AGENTS.md.

cargo fmt -- --check
cargo clippy --all-targets -- -D warnings
cargo test

可选SMTP集成冒烟测试:

scripts/test-greenmail.sh

直接运行GreenMail集成测试(需要运行GreenMail端点):

cargo test --test smtp_greenmail -- --ignored --nocapture

许可证

MIT许可证。看 许可证.

目录标签

目录标签

安全Rust开发工具SMTP本地部署邮件发送多账户支持策略限制

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@bradsjm/mail-smtp-mcp-rs@latest

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP