Token导航 LogoToken导航TokenDH.com
Java MCP Server For Smtp Mailing logo
AI代理stdio官方级别未说明来源级核验

Java MCP Server For Smtp Mailing

MCP Server

@modelcontextprotocol/inspector

一个支持多种传输协议(STDIO、SSE和Streamable HTTP)的SMTP邮件服务器,通过MCP工具和REST端点提供电子邮件发送功能,适用于AI应用、自动化工作流和测试环境。

工具数

0

提示词数

0

GitHub Stars

2

资源数

0
工作流自动化JavaClaudeClaude DesktopClaude

安装说明

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

作者 / 组织

RayenMalouche

提供方

RayenMalouche

最后核验

2026/5/17 20:20

运行时

Node.js

快速接入

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

命令预览

npx @modelcontextprotocol/inspector java -jar "<FULL_PATH_TO_PROJECT>/target/RayenMalouche-0.0.1-SNAPSHOT.jar" --stdio

详细介绍

SMTP MCP服务器(Java SDK 0.11.0)

一个全面的模型上下文协议(MCP)服务器,通过SMTP集成提供强大的电子邮件发送功能。该服务器支持多种传输协议(STDIO、SSE和Streamable HTTP),并通过MCP工具和REST端点公开电子邮件功能,使其成为将电子邮件功能集成到AI应用程序、自动化工作流和测试环境中的理想选择。

📋 目录

- STDIO传输 - 苏格兰和南方能源公司运输 - 流式HTTP

🚀 特性

核心功能

  • 多种传输协议:STDIO、服务器发送事件(SSE)和流式HTTP
  • MCP工具集成:提供 send-email MCP客户端工具
  • REST API:用于测试和集成的简单REST端点
  • Gmail SMTP支持:已为Gmail SMTP预配置TLS安全
  • 多个收件人:支持TO、CC和BCC收件人
  • 健康监测:内置健康检查端点
  • 克劳德桌面兼容:已准备好与Claude Desktop和其他MCP客户端一起使用

高级功能

  • 丰富的电子邮件格式:支持HTML和纯文本电子邮件
  • 附件支持 (计划中):文件附件功能
  • 电子邮件模板 (计划中):可重复使用的电子邮件模板
  • 重试机制:自动重试失败的电子邮件传递
  • 速率限制:内置防止垃圾邮件和过度使用的保护
  • 综合录井:调试和监控的详细日志

📋 先决条件

  • Java 21 或更高
  • Maven 3.6+
  • Gmail帐户 使用特定于应用程序的密码(或其他SMTP服务器凭据)
  • MCP客户端 (Claude Desktop、自定义客户端或用于测试的MCP检查器)

🏗️ 架构概述

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   MCP Client    │    │   MCP Server     │    │   SMTP Server   │
│  (Claude, etc.) │◄───┤  (This Project)  │────►│   (Gmail, etc.) │
└─────────────────┘    └──────────────────┘    └─────────────────┘
                              │
                         ┌────▼────┐
                         │ REST API│
                         │ Testing │
                         └─────────┘

该应用程序包括:

  • MCP服务器:通过多种传输处理MCP协议通信
  • 电子邮件服务:JavaMail的核心SMTP电子邮件发送功能
  • REST端点:用于测试和健康检查的其他HTTP端点
  • 传输层:支持STDIO、SSE和流式HTTP协议
  • 配置层:针对不同SMTP提供程序的灵活配置

🛠️ 安装与建造

1.克隆存储库

git clone https://github.com/RayenMalouche/Java-MCP-Server-For-SMTP-Mailing.git
cd Java-MCP-Server-For-SMTP-Mailing

2.配置电子邮件设置

在中编辑SMTP配置 Application.java:

// SMTP Configuration - Update these values
private static final String SMTP_USERNAME = "your-email@gmail.com";
private static final String SMTP_PASSWORD = "your-app-password";
private static final String SMTP_HOST = "smtp.gmail.com";
private static final int SMTP_PORT = 587;
private static final boolean SMTP_TLS_ENABLED = true;
private static final boolean SMTP_SSL_ENABLED = false;

3.建设项目

# Clean build
mvn clean compile

# Create JAR file
mvn clean package -DskipTests

# Build with tests (optional)
mvn clean package

⚙️ 配置

Gmail应用程序密码设置

  1. 启用双因素身份验证 在您的Gmail帐户上
  2. 首选 Google帐户设置 > 安全 > 应用密码
  3. 生成新的应用程序密码 对于此应用程序
  4. 在中使用生成的密码 SMTP_PASSWORD 领域

替代SMTP提供程序

微软Outlook/Hotmail

private static final String SMTP_HOST = "smtp-mail.outlook.com";
private static final int SMTP_PORT = 587;
private static final boolean SMTP_TLS_ENABLED = true;

邮件

private static final String SMTP_HOST = "smtp.mail.yahoo.com";
private static final int SMTP_PORT = 587;
private static final boolean SMTP_TLS_ENABLED = true;

自定义SMTP服务器

private static final String SMTP_HOST = "your-smtp-server.com";
private static final int SMTP_PORT = 25; // or 465/587
private static final boolean SMTP_TLS_ENABLED = true;

📖 用法

查找所需路径

在使用服务器之前,请确定系统上的以下路径:

项目路径

视窗:右键单击文件夹→ 属性→ 位置

Example: C:\Users\YourName\Documents\Java-MCP-Server-For-SMTP-Mailing

macOS/Linux:

cd /path/to/project && pwd
# Example: /home/username/Java-MCP-Server-For-SMTP-Mailing

Java可执行路径

视窗:

where java
# Example: C:\Program Files\Common Files\Oracle\Java\javapath\java.exe

macOS/Linux:

which java
# Example: /usr/bin/java or /opt/homebrew/bin/java

Java主路径

视窗:

echo %JAVA_HOME%
# Example: C:\Program Files\Java\jdk-21

macOS/Linux:

echo $JAVA_HOME
# Example: /usr/lib/jvm/java-21-openjdk

1.STDIO传输(建议用于克劳德桌面)

MCP检验员测试

# From inside your project directory:

# 1. Start the server
java -jar target/RayenMalouche-0.0.1-SNAPSHOT.jar --stdio

# 2. In another terminal, run the inspector
npx @modelcontextprotocol/inspector java -jar "/target/RayenMalouche-0.0.1-SNAPSHOT.jar" --stdio

Claude桌面集成

Windows配置 (%APPDATA%\Claude\config.json):

{
  "mcpServers": {
    "smtp-email-server": {
      "command": "",
      "args": [
        "-jar",
        "\\target\\RayenMalouche-0.0.1-SNAPSHOT.jar",
        "--stdio"
      ],
      "env": {
        "JAVA_HOME": ""
      }
    }
  }
}

macOS/Linux配置 (~/Library/Application Support/Claude/config.json~/.config/Claude/config.json):

{
  "mcpServers": {
    "smtp-email-server": {
      "command": "",
      "args": [
        "-jar",
        "/target/RayenMalouche-0.0.1-SNAPSHOT.jar",
        "--stdio"
      ],
      "env": {
        "JAVA_HOME": ""
      }
    }
  }
}

备注:The env 部分是可选的,但建议保持一致。

2.服务器发送事件(SSE)传输

启动SSE服务器

java -jar target/RayenMalouche-0.0.1-SNAPSHOT.jar --sse

MCP检验员测试

npx @modelcontextprotocol/inspector java -jar "/target/RayenMalouche-0.0.1-SNAPSHOT.jar" --sse

直接MCP客户端连接

将您的MCP客户端连接到: http://localhost:45450/sse

3.流式HTTP传输

启动HTTP服务器

java -jar target/RayenMalouche-0.0.1-SNAPSHOT.jar --streamable-http

MCP检验员测试

npx @modelcontextprotocol/inspector java -jar "/target/RayenMalouche-0.0.1-SNAPSHOT.jar" --streamable-http

🧪 测试

REST API测试

发送电子邮件

curl -X POST http://localhost:45450/api/test-email \
  -H "Content-Type: application/json" \
  -d '{
    "to": "test@example.com",
    "subject": "Test Email from MCP Server",
    "body": "This is a test email sent via the MCP SMTP server!",
    "cc": "optional-cc@example.com",
    "bcc": "optional-bcc@example.com"
  }'

健康检查

curl http://localhost:45450/api/health

使用邮递员

  1. 将端点导入Postman
  2. 基本URL: http://localhost:45450
  3. 端点:

- POST /api/test-email (电子邮件发送) - GET /api/health (健康检查)

通过Claude Desktop进行MCP工具测试

设置完Claude Desktop集成后,您可以通过询问Claude来进行测试:

"Send an email to john@example.com with the subject 'Meeting Reminder' and body 'Don't forget about our meeting tomorrow at 2 PM.'"

Claude将使用MCP工具通过您配置的SMTP服务器发送电子邮件。

📚 api参考

MCP工具:发送电子邮件

参数:

  • to (必填):收件人电子邮件地址
  • subject (必填):电子邮件主题行
  • body (必填):电子邮件正文内容
  • cc (可选):CC电子邮件地址
  • bcc (可选):BCC电子邮件地址

MCP客户端中的示例用法:

{
  "tool": "send-email",
  "parameters": {
    "to": "recipient@example.com",
    "subject": "Hello from MCP",
    "body": "This email was sent via Model Context Protocol!",
    "cc": "manager@example.com"
  }
}

REST端点

POST/api/测试电子邮件

通过REST API发送电子邮件。

请求正文:

{
  "to": "recipient@example.com",
  "subject": "Email Subject",
  "body": "Email body content",
  "cc": "optional-cc@example.com",
  "bcc": "optional-bcc@example.com"
}

成功响应 (200 OK):

{
  "status": "success",
  "message": "Email sent successfully",
  "details": {
    "to": "recipient@example.com",
    "subject": "Email Subject",
    "cc": "optional-cc@example.com",
    "bcc": "optional-bcc@example.com"
  }
}

错误响应 (500内部服务器错误):

{
  "status": "error",
  "message": "Failed to send email: [error details]",
  "errorType": "AuthenticationFailedException"
}

GET/api/健康

检查服务器运行状况。

响应 (200 OK):

{
  "status": "UP",
  "timestamp": "2025-08-29T10:30:00Z",
  "smtp": {
    "status": "UP",
    "host": "smtp.gmail.com",
    "port": 587
  }
}

传输协议比较

运输用例连接优点缺点
工作室Claude Desktop,直接集成流程管道简单、直接、高效需要流程管理
上海证券交易所Web应用程序,实时HTTP/SSE实时更新,Web友好设置更复杂
流式HTTP测试,REST客户端HTTP/JSON易于测试,标准HTTP实时效率较低

服务器端点(HTTP传输)

端点方法描述
/messagePOSTMCP协议端点(可流式HTTP)
/sseGET服务器发送事件端点
/api/test-emailPOST用于发送电子邮件的REST端点
/api/healthGET/POST健康检查端点

🔗 相关项目

此服务器是综合MCP生态系统的一部分:

1. MCP客户端数据集创建助手

  • 目的:使用网络抓取生成AI驱动的数据集
  • 整合:使用此SMTP服务器发送完成通知
  • 运输:与此服务器的SSE连接
  • 用例:自动将生成的数据集通过电子邮件发送给用户

2. AI代理性能测试MCP服务器

  • 目的:MCP客户的性能测试和基准测试
  • 整合:可以测试此SMTP服务器在负载下的性能
  • 特性:负载测试、指标收集、成本分析
  • 用例:验证生产场景中的电子邮件服务器性能

3. AI代理性能测试MCP客户端

  • 目的:连接到性能测试服务器的客户端应用程序
  • 整合:可以将此SMTP服务器用于测试结果通知
  • 特性:自动化测试工作流程、结果报告
  • 用例:MCP电子邮件工作流的端到端测试

集成示例

使用数据集创建助手

// The dataset assistant sends completion emails like:
{
  "to": "data-scientist@company.com",
  "subject": "Dataset Generation Complete - 150 samples created",
  "body": "Your requested dataset has been generated successfully. Total samples: 150. Processing time: 45 seconds. Dataset available at: /datasets/company-solutions-2025-08-29.json"
}

通过性能测试

// Performance test results notification:
{
  "to": "devops@company.com",
  "subject": "MCP Performance Test Results - Dataset Assistant",
  "body": "Performance test completed. Average response time: 12.5s. Success rate: 95%. Total cost: $0.45. Full report attached."
}

🐛 故障排除

常见问题

1.身份验证失败

症状:电子邮件发送失败,出现身份验证错误

解决方案:

  • 确保您正在使用 应用程序特定密码 适用于Gmail(不是您的帐户密码)
  • 验证 2FA已启用 在您的Google帐户上
  • 在中仔细检查用户名和密码 Application.java
  • 使用简单的电子邮件客户端测试SMTP凭据

调试步骤:

# Enable detailed JavaMail debug logging
java -Dmail.debug=true -jar target/RayenMalouche-0.0.1-SNAPSHOT.jar --stdio

2.连接被拒绝

症状:无法连接到SMTP服务器

解决方案:

  • 检查SMTP服务器设置是否正确
  • 验证防火墙是否允许端口587上的出站连接
  • 确保TLS设置符合您的SMTP提供程序要求
  • 尝试不同的SMTP端口(25、465、587)

网络测试:

# Test SMTP server connectivity
telnet smtp.gmail.com 587

3.端口已在使用中

症状:服务器无法启动,出现端口绑定错误

解决方案:

  • 服务器使用端口 45450 默认情况下
  • 停止使用该端口的任何现有进程
  • 或在中修改端口 Application.java

检查端口使用情况:

# Windows
netstat -ano | findstr 45450

# macOS/Linux  
lsof -i :45450

4.MCP检查器连接问题

症状:检查器无法连接到MCP服务器

解决方案:

  • 启动检查器之前,请确保服务器正在运行
  • 检查是否使用了正确的传输参数(--stdio, --sse, --streamable-http)
  • 验证JAR文件路径是否正确且绝对
  • 检查服务器日志中的启动错误

5.Claude桌面集成问题

症状:Claude无法识别电子邮件工具

解决方案:

  • 验证 config.json 文件位置和语法
  • 配置更改后重新启动Claude Desktop
  • 检查Java路径是否绝对正确
  • 确保JAR文件已构建且可访问
  • 验证JAVA_HOME环境变量

配置验证:

# Test Java path
"" -version

# Test JAR file
"" -jar "/target/RayenMalouche-0.0.1-SNAPSHOT.jar" --stdio

调试模式

启用全面日志记录:

# Full debug mode with JavaMail debugging
java -Dmail.debug=true -Dlogging.level.com.mcp=DEBUG -jar target/RayenMalouche-0.0.1-SNAPSHOT.jar --stdio

测试建议

  1. 从STDIO开始:最容易测试和调试
  2. 使用REST端点:独立于MCP测试电子邮件功能
  3. 与检查员核实:确认MCP协议集成工作正常
  4. 检查日志:监控控制台输出以获取详细的错误消息
  5. 测试电子邮件传递:发送到您控制的测试电子邮件帐户
  6. 验证SMTP设置:使用单独的电子邮件客户端验证SMTP凭据

📊 性能与监控

性能特征

  • 启动时间:~5-10秒(包括SMTP连接验证)
  • 电子邮件发送:每封电子邮件约1-3秒(取决于SMTP服务器)
  • 内存使用:~100-200 MB(随Java堆大小而变化)
  • 吞吐量:每分钟最多100封电子邮件(适用Gmail费率限制)

监控

健康检查端点

# Check server status
curl http://localhost:45450/api/health

# Expected response
{
  "status": "UP",
  "smtp": {
    "status": "UP",
    "host": "smtp.gmail.com", 
    "port": 587
  }
}

日志监控

# Monitor real-time logs
java -jar target/RayenMalouche-0.0.1-SNAPSHOT.jar --stdio | tee server.log

# Search for errors
grep -i error server.log
grep -i exception server.log

速率限制

Gmail和其他提供商有费率限制:

  • Gmail:免费帐户每天约100封电子邮件,付费帐户更高
  • 展望:个人账户每天约300封电子邮件
  • 雅虎:约100封电子邮件/天

为生产使用实施客户端速率限制。

🔧 依赖项

  • 弹簧靴3.5.4:应用程序框架
  • MCP SDK 0.11.0:模型上下文协议实现
  • Eclipse码头12.0.18:用于HTTP传输的嵌入式服务器
  • 雅加达邮报2.0.1:电子邮件发送功能
  • 杰克逊2.15.2:JSON处理
  • SLF4J+日志:日志框架

🔒 安全说明

生产注意事项

  • 从不提交凭据 到版本控制
  • 使用 环境变量 对于敏感配置:
  export SMTP_USERNAME=your-email@gmail.com
  export SMTP_PASSWORD=your-app-password
  • 实施 速率限制 用于REST端点以防止滥用
  • 使用 TLS加密 对于所有SMTP连接
  • 考虑 OAuth2 而不是企业部署的应用程序密码
  • 验证并净化所有电子邮件输入,以防止注入攻击

环境变量配置

// Example environment variable usage
private static final String SMTP_USERNAME = System.getenv("SMTP_USERNAME");
private static final String SMTP_PASSWORD = System.getenv("SMTP_PASSWORD");

🤝 贡献

我们欢迎捐款!以下是如何开始:

开发设置

  1. 分叉存储库
  2. 克隆你的叉子:
   git clone https://github.com/yourusername/Java-MCP-Server-For-SMTP-Mailing.git
  1. 创建要素分支:
   git checkout -b feature/amazing-feature
  1. 进行更改 并进行彻底测试
  2. 使用所有传输协议进行测试
  3. 提交拉取请求

代码的风格

  • 遵循标准Java约定
  • 添加全面的JavaDoc注释
  • 包括新功能的单元测试
  • 确保所有现有测试通过

测试要求

# Run all tests
mvn test

# Run with different transports
mvn test -Dtest.transport=stdio
mvn test -Dtest.transport=sse  
mvn test -Dtest.transport=http

📄 许可证

该项目使用Spring Boot和其他开源库。请参阅各个依赖许可证以获取更多信息。

💡 支持

对于问题和疑问:

创建问题

  • 错误报告:提供详细的复制步骤
  • 功能请求:描述用例和预期行为
  • 问题:首先检查现有问题

调试检查表

  1. ✅ 查看 故障排除部分
  2. ✅ 检查服务器日志以获取详细的错误消息
  3. ✅ 使用单独的电子邮件客户端验证SMTP配置
  4. ✅ 在使用MCP集成之前,使用REST端点进行测试
  5. ✅ 尝试不同的传输协议来隔离问题
  6. ✅ 确认Java和Maven版本符合要求

获取帮助

  • 文档:查看此README和内联代码注释
  • 例子:参见 相关项目 用于集成示例
  • 社区:打开GitHub问题以获得社区支持
  • 企业:考虑为生产部署提供专业支持

______________________________________________________________________

由以下材料制成❤️ 对于MCP生态系统

*该服务器弥合了人工智能应用程序和电子邮件通信之间的差距,实现了强大的自动化工作流程和无缝的用户通知。*

目录标签

目录标签

工作流自动化JavaClaudeSMTP服务本地部署邮件发送MCP协议RESTAPI自动化工作流

支持客户端

Claude DesktopClaude

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@modelcontextprotocol/inspector

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP