SMTP邮件服务器

一个基于FastAPI的安全、支持Bearer认证的SMTP邮件服务器,可与OpenWebUI、Claude Desktop或CLI集成,用于动态邮件生成和发送。

  • by Nels2
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Nels2/smtp-mcp-server

使用说明

MCP SMTP 邮件服务器

一种安全的、基于持有者认证的电子邮件工具。 这个项目展示了一个集成了MCP工具的简单FastAPI服务器,使其能够与OpenWebUI一起使用, Claude Desktop,或用于动态邮件生成的CLI(命令行界面)。


特点/功能

  • FastAPI 服务器 使用承载令牌进行身份验证
  • MCP工具支持 用于OpenWebUI集成
  • /send_email 端点 用于动态邮件投递
  • Swagger UI(/docs) 基于令牌的访问

文件

文件 用途
main.py 启动FastAPI应用,加载MCP工具,暴露路由
mcp_email.py 定义 send_email 工具逻辑 + 模式(或架构)
config.py 存储承载令牌和电子邮件凭据

要求


设置

1. 克隆并安装

git clone https://github.com/yourname/365-sacu-email-server
cd 365-sacu-email-server
uv pip install -r requirements.txt

2. 配置

编辑 config.py:

MCP_BEARER_TOKEN = "your-secret-token"
SMTP_SERVER = "smtp.office365.com" # i used office 365 for my SMTP, I know M$ Graph exists but that is besides the point. If it truly is better than SMTP let me know...
SMTP_PORT = 587
FROM_ADDRESS = "bot@sacu365.org"
SMTP_USERNAME = "bot@sacu365.org"
SMTP_PASSWORD = "your-email-password"

3. 跑

uvicorn main:app --host 0.0.0.0 --port 8020

然后访问: http://localhost:8020/docs 翻译为中文是:“本地主机上的8020端口文档页面”。不过,通常我们不会直接翻译网址,而是说明其访问方式或用途。在这个上下文中,可以理解为“访问本地开发服务器上的文档页面,该页面运行在8020端口上”


终端(或终点)

POST(邮政服务) /send_email

{
  "to": "you@domain.com",
  "subject": "Test Email",
  "body": "Hello from MCP Email Server"
}

此工具使用您配置的SMTP设置发送电子邮件。


MCP集成

在OpenWebUI中注册此工具:

URL: http://<host>:8020/openapi.json
Auth: Bearer <your-token>

然后调用:

await send_email({"to": ..., "subject": ..., "body": ...})

建筑

  • 已注册的MCP工具 @mcp.tool()
  • send_email 函数从配置中读取凭据并通过(某种方式)发送 smtplib
  • FastAPI 将其封装在一个带有令牌强制验证的安全路由中
  • Swagger UI 自动生成用于 OpenWebUI 的架构(或模式)

许可证

麻省理工学院(MIT)。可在您自己的基础设施或项目中自由使用。