邮件发送工具

一个基于SMTP协议的邮件发送工具,支持通过Brevo服务发送邮件,适用于需要程序化发送邮件的场景。

  • by adiityaaa19
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 adiityaaa19/SMTP_MCP_TOOL

使用说明

电子邮件MCP工具 📧

一个模型上下文协议(MCP)服务器,它通过SMTP利用Brevo(前身为Sendinblue)作为电子邮件服务提供商来提供电子邮件发送功能。

特点/功能

  • 📧(电子邮件) 直接电子邮件发送通过SMTP编程方式发送电子邮件
  • 🔧 修理工具或螺丝刀的符号,常用于表示需要修理或调整的物品或情境。 MCP集成兼容支持MCP的AI助手
  • 🐳(海豚) Docker 支持已准备好进行容器化部署
  • 🔒 表示“锁定”或“安全”的符号。 基于环境的配置安全凭证管理
  • 📝 HTML & 纯文本支持两种电子邮件格式

项目结构

gmail_mcp_tool/
├── app/
│   ├── gmail.py           # Main MCP server implementation
│   └── requirements.txt   # Python dependencies
├── .env                   # Environment variables (local development)
├── dockerfile             # Docker configuration
├── Dockerfile.smtp        # Alternative Docker configuration
├── test.py               # Test script
└── README.md             # This file

先决条件

  • Python 3.11+
  • Brevo SMTP账户及凭据
  • Docker(可选,用于容器化部署)

安装与设置

1. 克隆/下载项目

git clone <repository-url>
cd gmail_mcp_tool

2. 环境配置

创建一个 .env 在项目根目录下创建文件,并填入您的Brevo SMTP凭据:

# Groq API Configuration (if needed for AI features)
GROQ_API_KEY="your_groq_api_key_here"

# Brevo SMTP Configuration
SMTP_SERVER="smtp-relay.brevo.com"
SMTP_PORT="587"
SMTP_LOGIN="your_brevo_login@smtp-brevo.com"
SMTP_PASSWORD="your_brevo_password"
SMTP_FROM_EMAIL="your_sender_email@domain.com"

3. 本地开发环境设置

# Create virtual environment
python -m venv .venv

# Activate virtual environment
# Windows:
.venv\Scripts\activate
# Linux/Mac:
source .venv/bin/activate

# Install dependencies
pip install -r app/requirements.txt

# Run the MCP server
python app/gmail.py

4. Docker 部署

# Build Docker image
docker build -t gmail-mcp-tool .

# Run container with environment variables
docker run -p 8000:8000 \
  -e SMTP_SERVER="eaxmple.com" \
  -e SMTP_PORT="587" \
  -e SMTP_LOGIN="your_login" \
  -e SMTP_PASSWORD="your_password" \
  -e SMTP_FROM_EMAIL="your_email@domain.com" \
  gmail-mcp-tool

使用方法

MCP服务器端点

一旦运行,MCP服务器将在以下地址可用:

http://localhost:8000/mcp

可用工具

send_email_only

使用配置的SMTP设置发送电子邮件。

参数:

  • to_email (必填):收件人电子邮件地址
  • subject (必填):电子邮件主题行
  • body (必填):电子邮件内容(支持纯文本)
  • from_email (可选):发件人电子邮件(默认为SMTP_FROM_EMAIL)

示例用法:

# Via MCP client
result = mcp_client.call_tool("send_email_only", {
    "to_email": "recipient@example.com",
    "subject": "Hello from MCP",
    "body": "This is a test email sent via MCP!"
})

配置

环境变量

变量 描述 必需 默认值
SMTP_SERVER Brevo SMTP 服务器 是 smtp-relay.brevo.com
SMTP_PORT SMTP 端口 是 587
SMTP_LOGIN Brevo SMTP 登录 是 -
SMTP_PASSWORD Brevo SMTP 密码 是 -
SMTP_FROM_EMAIL 默认发件人邮箱 否 -
ENV 环境模式 否 development

Brevo 设置

  1. 注册一个 Brevo账户
  2. 前往SMTP & API设置
  3. 生成SMTP凭据
  4. 使用提供的登录名和密码进行登录 .env 文件

发展

测试

运行测试脚本来验证电子邮件功能:

python test.py

添加功能

MCP服务器是使用FastMCP构建的。要添加新工具:

  1. 在(某个地方或条件下)定义你的函数 app/gmail.py
  2. 加上 @mcp.tool() 装饰器
  3. 重启服务器

示例:

@mcp.tool()
def new_email_feature(param1: str, param2: str) -> str:
    """
    Description of your new email feature
    """
    # Implementation here
    return "Success message"

故障排除

常见问题

  1. SMTP 认证失败

    • 验证您的Brevo凭据
    • 检查您的Brevo账户是否处于激活状态
    • 确保您的Brevo账户已启用SMTP
  2. 端口连接问题

    • 确保端口8000可用
    • 检查防火墙设置
    • 如有需要,请尝试不同的端口
  3. 环境变量未加载

    • 验证 .env 文件存在且格式正确
    • 检查文件权限
    • 确保变量赋值中没有多余的空格

日志

服务器提供控制台输出以供调试:

  • ✅ 已发送电子邮件的成功消息
  • ❌ 含有详细信息的错误消息
  • 🚀 服务器启动信息

安全注意事项

  • 永远不要承诺 .env 将文件纳入版本控制
  • 在生产环境中使用环境变量
  • 定期更换SMTP凭据
  • 考虑在生产环境中使用密钥管理

许可证

这个项目是开源的。请查看许可证文件以获取详细信息。

做出贡献

  1. 为仓库创建分支(或“克隆仓库”)
  2. 创建一个特性分支
  3. 进行你的更改
  4. 彻底测试
  5. 提交一个拉取请求

支持

对于问题和疑问:

  • 查看故障排除部分
  • 查看Brevo文档
  • 在仓库中创建一个问题

使用FastMCP和Brevo SMTP,满怀热爱地构建而成