项目简介

ReMailer 是一个使用 Python、SMTP 和 Azure SQL 数据库构建的自动化订阅续订邮件系统。它作为MCP(Model Context Protocol)服务器,能够安全地向单个或多个收件人发送个性化、高优先级的邮件。通过与大型语言模型(LLM)客户端(如Claude Desktop)集成,可以实现自然语言指令驱动的邮件发送和用户管理。

主要功能点

  • 自动化邮件发送: 支持通过标准SMTP协议发送邮件,可灵活配置邮件服务器和身份验证信息。
  • Azure SQL 数据库集成: 能够动态查询和管理用户及订阅数据,实现基于数据库内容的邮件发送。
  • 多目标邮件发送: 可根据用户状态(如订阅过期、即将到期、不活跃、高级用户、新用户)精准定位并发送定制化邮件。
  • 高优先级邮件: 发送的所有邮件都会自动标记为高优先级,确保收件人能及时关注。
  • 支持单发和群发: 可根据需要向单个用户发送特定邮件,或向符合条件的用户群体批量发送邮件。
  • LLM驱动: 作为MCP服务器,它可以通过与LLM客户端的交互,将自然语言指令转化为实际的邮件发送和用户查询操作。

安装步骤

  1. 克隆仓库: 打开命令行终端,执行以下命令克隆项目仓库:

    git clone https://github.com/indrajitsahu/ReMailer.git
    cd ReMailer
  2. 配置环境: 在克隆下来的 '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生成邮件内容,此项可留空或不填)
  3. 安装MCP服务器: 使用 'uv' 包管理器安装项目依赖并设置MCP服务器:

    uv run mcp install main.py
  4. 运行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天内到期的用户。"
  • "通知所有不活跃且有欠款的用户。"
  • "向所有高级用户发送一份问候邮件。"

信息

分类

商业系统