项目简介
ReMailer 是一个使用 Python、SMTP 和 Azure SQL 数据库构建的自动化订阅续订邮件系统。它作为MCP(Model Context Protocol)服务器,能够安全地向单个或多个收件人发送个性化、高优先级的邮件。通过与大型语言模型(LLM)客户端(如Claude Desktop)集成,可以实现自然语言指令驱动的邮件发送和用户管理。
主要功能点
- 自动化邮件发送: 支持通过标准SMTP协议发送邮件,可灵活配置邮件服务器和身份验证信息。
- Azure SQL 数据库集成: 能够动态查询和管理用户及订阅数据,实现基于数据库内容的邮件发送。
- 多目标邮件发送: 可根据用户状态(如订阅过期、即将到期、不活跃、高级用户、新用户)精准定位并发送定制化邮件。
- 高优先级邮件: 发送的所有邮件都会自动标记为高优先级,确保收件人能及时关注。
- 支持单发和群发: 可根据需要向单个用户发送特定邮件,或向符合条件的用户群体批量发送邮件。
- LLM驱动: 作为MCP服务器,它可以通过与LLM客户端的交互,将自然语言指令转化为实际的邮件发送和用户查询操作。
安装步骤
-
克隆仓库: 打开命令行终端,执行以下命令克隆项目仓库:
git clone https://github.com/indrajitsahu/ReMailer.git cd ReMailer -
配置环境: 在克隆下来的 'ReMailer' 仓库的根目录下,创建一个名为 '.env' 的文件,并按照以下示例填写数据库和SMTP邮件服务器的连接信息。'API_KEY' 是可选的,如果需要通过Perplexity AI生成邮件内容则需提供:
DB_SERVER=你的SQL服务器地址 DB_NAME=你的数据库名称 DB_USERNAME=你的数据库用户名 DB_PASSWORD=你的数据库密码 SMTP_SERVER=你的SMTP服务器地址 (例如:smtp.gmail.com) SMTP_PORT=你的SMTP端口 (例如:587 或 465) EMAIL_USERNAME=你的发件邮箱地址 EMAIL_PASSWORD=你的发件邮箱密码 API_KEY=你的Perplexity AI API Key (如果无需AI生成邮件内容,此项可留空或不填) -
安装MCP服务器: 使用 'uv' 包管理器安装项目依赖并设置MCP服务器:
uv run mcp install main.py -
运行MCP服务器: 执行以下命令启动MCP服务器:
uv run main.py如果服务器成功启动,你将在终端看到提示信息:
Email Sender MCP Server is running...
服务器配置 (供MCP客户端连接参考)
为了让支持MCP协议的客户端(如Claude Desktop)能够连接并使用 ReMailer 服务器,客户端需要配置服务器的启动信息。以下是一个示例JSON格式的配置,供客户端参考:
{ "server_name": "AutomatedEmailSubscriptionModel", "command": "uv", "args": ["run", "main.py"], "description": "用于管理和发送自动化订阅续订邮件的MCP服务器,提供用户查询和邮件发送工具。", "capabilities": { "tools": [ "send_email_one_email", // 发送邮件给单个邮箱地址 "send_email_multiple_emails", // 发送邮件给多个邮箱地址(以元组形式提供) "get_expired_users", // 获取所有订阅已过期用户的信息 "get_all_users", // 获取所有注册用户的信息 "get_inactive_users_with_due", // 获取所有不活跃且有欠费的用户信息 "get_active_users_with_due", // 获取所有活跃订阅但有欠费的用户信息 "get_new_users_with_no_subscription", // 获取所有新注册但尚未订阅的用户信息 "get_all_users_with_due", // 获取所有有欠费的用户信息 "get_all_upcoming_expiry_users",// 获取所有订阅即将到期的用户信息 "get_premium_users" // 获取所有Premium计划的活跃用户 ], "prompts": [ "build_connection_string" // 构建数据库连接字符串 ] } }
- 'server_name': 这是MCP服务器在客户端中显示的名称。
- 'command': 启动MCP服务器所使用的命令。
- 'args': 传递给启动命令的参数列表。
- 'description': 对MCP服务器功能的简要描述。
- 'capabilities': 列出了此MCP服务器提供的所有“工具”(tools)和“提示”(prompts),客户端可以通过这些功能与服务器进行交互。
基本使用方法
一旦 ReMailer MCP 服务器成功运行,并且你已通过支持MCP协议的LLM客户端(如Claude Desktop)连接到它,你就可以通过自然语言指令来让LLM调用服务器的功能。例如:
- "请发送续订邮件给所有订阅已过期的用户。"
- "列出所有订阅将在未来7天内到期的用户。"
- "通知所有不活跃且有欠款的用户。"
- "向所有高级用户发送一份问候邮件。"
信息
分类
商业系统