WebHook功能介绍

当点击生成Excel的时候,当sql数据库备份发生的时候 server容器会将这几个文件发送到WebHook容器中,你可以自己编写python文件来处理这些文件,比如发送邮件,保存到指定目录等操作 我预先内置了一套发送Email的脚本,一套保存文件到本地的脚本,使用者可以根据自己的需求进行修改

Compose内容

webhook:
    image: registry.cn-beijing.aliyuncs.com/easy_accounts/easyaccounts-webhook:latest #此处使用阿里云镜像
    container_name: easy_accounts_webhook
    restart: always
    ports:
      - "10671:8083"
    volumes:
      - ./WebHook:/app/
      #- ./WebHook/webhook.py:/app/webhook.py           #如果要自行处理文件,则取消这行注释,映射该文件,则下方的环境变量无效
      - ./WebHook/webhook-email.py:/app/webhook.py     #如需修改发送邮件服务,请解开此行注释
    environment:
      - LOG_FILE=/app/hook.log
      - SEND_SQL_BACKUP=True                  # 是否发送SQL备份文件,默认True
      - SEND_EXCEL=True                       # 是否发送Excel文件,默认True

      # -------------------以下为发送邮件服务的环境变量-------------------
      - SMTP_SERVER=                          # SMTP服务器地址
      - SMTP_PORT=                            # SMTP端口
      - SMTP_MAIL=                            # 发件人邮箱,一般来说是SMTP账号,例如自己的QQ邮箱
      - SMTP_PASSWORD=                        # SMTP密码,一般来说是SMTP账号的授权码,需要自己去自己的邮箱中找到设置
      - SMTP_TO_LIST=                         # 收件人邮箱列表,用逗号分隔

    networks:
      - easy_accounts_net

WebHook使用说明

  1. WebHook功能需要在EasyAccounts项目中启动,启动后会监听10671端口

  2. WebHook 有两个具体实现的功能类,分别是:

    • webhook.py

    • webhook-email.py

webhook.py

此类的主要功能是提供一个示例,用于展示如何使用WebHook功能,提供了一个保存文件的工具类,并未实现具体发送功能。

webhook-email.py

默认使用的是该文件进行的发送邮件 此类是发送邮件的具体实现,使用了email模块,需要配置邮件服务器的相关信息。 在 docker-compose.yml 中配置了邮件服务器的相关信息,如下:

  environment:
      - LOG_FILE=/app/hook.log
      - SEND_SQL_BACKUP=True                  # 是否发送SQL备份文件,默认True
      - SEND_EXCEL=True                       # 是否发送Excel文件,默认True

      # -------------------以下为发送邮件服务的环境变量-------------------
      - SMTP_SERVER=                          # SMTP服务器地址
      - SMTP_PORT=                            # SMTP端口
      - SMTP_MAIL=                            # 发件人邮箱,一般来说是SMTP账号,例如自己的QQ邮箱
      - SMTP_PASSWORD=                        # SMTP密码,一般来说是SMTP账号的授权码,需要自己去自己的邮箱中找到设置
      - SMTP_TO_LIST=                         # 收件人邮箱列表,用逗号分隔

发送邮件的协议为SMTP,暂不支持别的协议,需要配置SMTP服务器的相关信息,不同的邮件供应商有不同的SMTP服务器地址和端口,例如QQ邮箱的SMTP服务器地址为smtp.qq.com,端口为587。 如果想使用不同的供应商,需要自行去自己的邮箱找对应的配置信息。 例如QQ邮箱: Outlook邮箱:

目前测试通过的邮件服务商有:

  • QQ邮箱

  • outlook邮箱

使用方法

  1. docker-compose.yml或者docker-compose-chinese.yml中配置WebHook配置项

  2. 启动EasyAccounts项目

自定义开发

解开docker-compose.yml中的注释,将webhook.py或者webhook-email.py映射到容器中,即可自定义开发。

    volumes:
      - ./WebHook:/app/
      #- ./WebHook/webhook.py:/app/webhook.py           #如果要自行处理文件,则取消这行注释,映射该文件,则下方的环境变量无效
      - ./WebHook/webhook-email.py:/app/webhook.py     #如需修改发送邮件服务,请解开此行注释

开发注意事项: Docker容器内的环境包只有如下内容:

fastapi==0.111.0
pydantic==2.7.1
Requests==2.32.2

如果想增加包,请到EasyAccountOpenSource中的WebHook中重新构建镜像

日志查看

日志文件默认保存在WebHook/hook.log中。

注意事项

邮箱端口请使用TLS加密端口,不支持SSL加密。 日志文件默认保存在/app/hook.log中,可以通过LOG_FILE环境变量进行修改。

Last updated