Enables sending emails through Gmail's SMTP server, supporting single and multiple recipients, HTML content, attachments, CC, and BCC functionality.
📧 邮件发送 MCP 服务器
基于 email_sender.py 工具类构建的邮件发送 MCP 服务器,支持通过 Model Context Protocol 发送邮件。
✨ 功能特性
✅ 发送简单邮件(单个收件人)
✅ 发送完整邮件(支持多个收件人、附件、CC、BCC)
✅ 支持纯文本和 HTML 格式
✅ 支持自定义 SMTP 配置
✅ 支持常用邮箱预设配置(163、QQ、Gmail、Outlook等)
✅ 从环境变量读取配置
🚀 快速开始
1. 安装依赖
2. 配置环境变量
创建 .env 文件或设置环境变量:
3. 在 Cursor 中配置 MCP 服务器
在 Cursor 的设置中添加 MCP 服务器配置:
📋 可用工具
1. send_simple_email - 发送简单邮件
发送单个收件人的简单邮件。
参数:
receiver_email(str): 收件人邮箱地址subject(str): 邮件主题content(str): 邮件内容content_type(str, 可选): 内容类型,'plain' 或 'html',默认为 'plain'
示例:
2. send_email - 发送完整邮件
发送支持多个收件人、附件、CC、BCC 的完整邮件。
参数:
receiver_emails(List[str]): 收件人邮箱地址列表subject(str): 邮件主题content(str): 邮件内容content_type(str, 可选): 内容类型,'plain' 或 'html',默认为 'plain'attachments(List[str], 可选): 附件文件路径列表cc_emails(List[str], 可选): 抄送邮箱地址列表bcc_emails(List[str], 可选): 密送邮箱地址列表
示例:
3. send_email_with_custom_config - 使用自定义配置发送
使用自定义 SMTP 配置发送邮件,不依赖环境变量。
参数:
receiver_emails(List[str]): 收件人邮箱地址列表subject(str): 邮件主题content(str): 邮件内容smtp_server(str): SMTP服务器地址smtp_port(int): SMTP端口sender_email(str): 发件人邮箱sender_password(str): 发件人密码或授权码content_type(str, 可选): 内容类型,默认为 'plain'use_tls(bool, 可选): 是否使用TLS,默认为 Falseuse_ssl(bool, 可选): 是否使用SSL,默认为 Falseattachments(List[str], 可选): 附件文件路径列表cc_emails(List[str], 可选): 抄送邮箱地址列表bcc_emails(List[str], 可选): 密送邮箱地址列表
4. get_smtp_configs - 获取常用邮箱配置
获取常用邮箱的 SMTP 配置信息。
返回: JSON 格式的配置信息
5. get_current_config - 获取当前配置
获取当前使用的 SMTP 配置(从环境变量读取)。
返回: JSON 格式的配置信息(密码已隐藏)
📝 常用邮箱配置
QQ 邮箱
或使用 SSL:
注意: 需要使用授权码,不是登录密码。在 QQ 邮箱设置中开启 SMTP 服务并生成授权码。
163 邮箱
或使用 SSL:
Gmail
注意: Gmail 需要使用应用专用密码,不是普通密码。
Outlook
🔧 本地测试
直接运行服务器进行测试:
📚 相关文件
email_sender.py: 邮件发送工具类main.py: MCP 服务器主文件pyproject.toml: 项目配置文件
⚠️ 注意事项
密码安全: 不要在代码中硬编码密码,使用环境变量或配置文件
授权码: 大多数邮箱服务商需要使用授权码而不是登录密码
端口选择:
端口 25: 通常不需要加密(可能被某些网络阻止)
端口 587: 使用 STARTTLS(推荐)
端口 465: 使用 SSL/TLS
附件路径: 附件文件路径必须是绝对路径或相对于工作目录的路径
🐛 故障排除
认证失败
检查邮箱和密码/授权码是否正确
确认是否使用了授权码而不是登录密码
检查 SMTP 服务是否已开启
连接失败
检查 SMTP 服务器地址和端口是否正确
确认网络连接正常
检查防火墙设置
发送失败
检查收件人邮箱地址格式是否正确
确认附件文件路径存在且可读
查看错误信息中的详细提示
📄 许可证
MIT License