Skip to content
页面导航

推送工具

推送注册

QD 框架提供多种推送方式,你可以在 工具箱->推送注册 中注册不同的推送工具,以便在发生特定事件(例如定时任务执行失败)时向你推送通知。

提醒

推送注册时填写的参数以 ; 分隔并连接, 如果参数值为空, 请务必保留该参数位置后的 ; , 否则可能导致参数解析错误.

推送注册测试

工具箱->推送注册 中注册推送方式后, 可以点击 测试 按钮来测试推送方式是否可用.

如果推送方式可用, 则会收到一条推送消息, 否则会提示推送失败.

提醒

进行推送注册测试时, 请确保以下条件已满足:

  • 填写了正确的参数;

  • 邮箱密码 中填写了 QD 框架的用户邮箱和密码.

推送注册前值

工具箱->推送注册 中注册推送方式后, 可以点击 前值 按钮来查看推送注册的前值.

提醒

查看推送注册前值时, 请确保 邮箱密码 中填写了 QD 框架的用户邮箱和密码.

推送方式

QD 框架提供以下推送方式:

邮件推送

邮件推送无需在 工具箱->推送注册 中设置参数, 需要在环境变量中配置以下参数:

变量名是否必须默认值说明
MAIL_SMTP""邮箱SMTP服务器
MAIL_PORT465邮箱SMTP服务器端口
MAIL_SSLTrue是否使用SSL
MAIL_STARTTLSFalse是否使用STARTTLS
MAIL_USER""邮箱用户名
MAIL_PASSWORD""邮箱密码
MAIL_FROMMAIL_USER发送时使用的邮箱,默认与MAIL_USER相同
MAIL_DOMAIN_HTTPSFalse发送的邮件链接启用HTTPS,
非框架前端使用HTTPS,
如果前端需要HTTPS, 请使用反向代理.

如果你使用的是以下邮箱, 参考下方的SMTP开启方式和配置方法来获取你的SMTP服务器地址和端口。

邮箱SMTP开启方式SMTP配置方法其他说明
腾讯企业邮箱如何开启腾讯企业邮箱的POP/SMTP/IMAP服务?常用邮件客户端软件设置成员如何绑定/关联微信以及开启安全登录获取客户端专用密码?
QQ邮箱如何开启QQ邮箱的POP3/SMTP/IMAP服务?如何打开POP3/SMTP/IMAP功能?开启POP3/SMTP/IMAP功能为什么需要先设置独立密码?
网易企业邮箱-企业邮箱的POP、SMTP、IMAP服务器地址设置。什么是客户端授权码,如何使用?
网易邮箱什么是POP3、SMTP及IMAP?如何开启客户端协议?-
Gmail-如何使用POP3/SMTP/IMAP服务?如何使用客户端授权密码?
Outlook-POP、IMAP 和 SMTP 设置对不支持双重验证的应用使用应用密码

MailGun

如果您配置了 MailGun, 请在环境变量中配置以下参数:

变量名是否必须默认值说明
MAILGUN_KEY""MailGun API Key
MAILGUN_DOMAINDOMAINMailGun Domain,
默认为环境变量中的 DOMAIN 值,
请在环境变量中配置 DOMAIN 值,
并在 MailGun 控制台中设置对应的 Domain,
否则无法使用 MailGun

Bark 推送

Bark 推送需要在 工具箱->推送注册 中设置参数:

参数名是否必须默认值说明
BarkUrl""Bark 推送地址,
格式为 https://api.day.app/推送码,
推送码可在 Bark 客户端中获取,
如果你使用的是自建 Bark 服务,
请将 https://api.day.app/ 替换为你的 Bark 服务地址 .
例如: http://bark.example.com/推送码

Server 酱推送

Server 酱推送需要在 工具箱->推送注册 中设置参数:

参数名是否必须默认值说明
skey""Server 酱推送 SCKEY,
可在 Server 酱 中获取对应的 SendKey

Telegram Bot 推送

Telegram Bot 推送需要在 工具箱->推送注册 中设置参数:

参数名是否必须默认值说明
TG_TOKEN""Telegram Bot Token,
可在 BotFather 中获取,
应当为 Bot 的 ID 以及对应的 Key 的组合,但是不包括 bot,
即 token 形式:1111111111:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
TG_USERID""Telegram Chat ID,
可在 Telegram API 中获取,
Telegram API中的 chat_id 字段,如 222222222
TG_HOST""Telegram API Host,
可为域名或IP地址,
例如 tg.mydomain.com,
也可以带上 http:// 或者 https:// 前缀,
如果留空, 则使用默认值 api.telegram.org
PROXY_URL""Proxy 代理地址,
格式为 scheme://username:password@host:port,
例如 http://user:password@host:port,
如果留空, 则不使用 Proxy 代理
PUSH_PIC_URL""自定义推送图片地址,
如果留空, 则使用环境变量 PUSH_PIC_URL
示例

假设你已经创建了一个具有自定义域名的 Telegram Bot API:

https://tg.mydomain.com/bot1111111111:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/sendMessage?chat_id=222222222&text=HelloWorld

上面这个请求将会向222222222这个聊天发送一条HelloWorld消息, 那么在注册 Telegram Bot 作为推送方式时:

  • TG_TOKEN1111111111:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
  • TG_USERID222222222
  • TG_HOSTtg.mydomain.com

因此最终填写形式形如:

Text
1111111111:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA;222222222;tg.mydomain.com

钉钉推送

钉钉推送需要在 工具箱->推送注册 中设置参数:

参数名是否必须默认值说明
DINGDING_TOKEN""钉钉推送 Token,
可在 自定义机器人接入 中获取,
如果你在 安全设置 中设置了 IP地址段 ,
请将 QD 服务器的 IP 地址添加到 IP地址段 中,
否则无法接收到推送消息;
如果你在 安全设置 中设置了 自定义关键词 ,
请将 QD/推送/测试 添加到 自定义关键词 中,
否则无法接收到推送消息;
请勿在 安全设置 中开启 加签, QD 框架暂不支持钉钉加签推送.
PUSH_PIC_URL""自定义推送图片地址,
如果留空, 则使用环境变量 PUSH_PIC_URL

WXPusher 推送

WXPusher 推送需要在 工具箱->推送注册 中设置参数:

参数名是否必须默认值说明
APPTOKEN""WXPusher 推送 Token,
可在 WXPusher 中获取
WxPusher_UID""WXPusher 推送 UID,
可在 WXPusher 中获取

企业微信应用推送

企业微信应用推送需要在 工具箱->推送注册 中设置参数:

参数名是否必须默认值说明
CorpID""企业微信 CorpID,
可在 企业微信 中获取
AgentID""企业微信应用 AgentID,
可在 企业微信 中获取
AgentSecret""企业微信应用 Secret,
可在 企业微信 中获取
PUSH_PIC_URL_or_Media_id""自定义推送图片地址或 Media_id,
Media_id 可以通过 企业微信 接口获取,
如果留空, 则使用环境变量 PUSH_PIC_URL
QYWX_PROXY_HOST""企业微信 Host,
可为域名或IP地址,
例如 qywx.mydomain.com,
也可以带上 http:// 或者 https:// 前缀,
如果留空, 则使用默认值 https://qyapi.weixin.qq.com/

QYWX_PROXY_HOST

如果你使用 Nginx 代理企业微信应用推送, 以下为 Nginx 配置示例:

Nginx
server {
    listen 443 ssl;
    server_name qywx.mydomain.com;
    ssl_certificate /etc/nginx/ssl/qywx.mydomain.com/fullchain.cer;
    ssl_certificate_key /etc/nginx/ssl/qywx.mydomain.com/private.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    location / {
        proxy_pass https://qyapi.weixin.qq.com/;
    }
}

企业微信 Webhook 推送

企业微信 Webhook 推送需要在 工具箱->推送注册 中设置参数:

参数名是否必须默认值说明
QYWX_WebHook_Key""企业微信 Webhook Key,
可在 企业微信 中获取

自定义推送

自定义推送支持 GETPOST 推送方式, 使用 {log}{t} 表示要替换的日志和标题.

自定义推送需要在 工具箱->推送注册 中设置参数:

自定义 Get 推送

参数名是否必须默认值说明
URL""自定义 Get 推送地址,
例如 https://example.com/push?log={log}&t={t}
GET_Header""自定义 Get 推送 Header,
使用 json 格式(半角双引号), 格式为 { "key1": "value1", "key2": "value2" },
如果留空, 则不设置 Header

自定义 Post 推送

参数名是否必须默认值说明
URL""自定义 Post 推送地址,
例如 https://example.com/push
POST_Header""自定义 Post 推送 Header,
使用 json 格式(半角双引号), 格式为 { "key1": "value1", "key2": "value2" },
如果留空, 则不设置 Header
POST_Data""自定义 Post 推送 Body,
使用 json 格式(半角双引号),
例如 { "key1": "{log}", "key2": "{t}" },
如果留空, 则不设置 Body

推送设置

工具箱->推送注册 中注册推送方式后, 可以在 工具箱->推送设置 中设置推送方式的触发条件.

推送设置 中, 可以设置每个任务的推送开关, 任务结果推送渠道, 任务结果通知选择, 任务结果批量推送等.

任务结果推送渠道

用于设置任务结果推送渠道, 任务结果推送渠道包括以下几种:

任务结果通知选择

用于设置在何时推送任务结果, 任务结果通知选择包括以下几种:

  • 手动执行成功通知
  • 手动执行失败通知
  • 自动执行成功通知
  • 自动执行失败通知

自动错误几次后提醒 可以设置在自动执行失败几次后推送通知, 例如设置为 3 , 则当自动执行失败 3 次后, 会推送通知.

任务结果批量推送

开启定期批量推送 时, 会根据 批量推送时间设置批量推送时间间隔 来批量推送距离本次推送时间前指定时间间隔内的任务结果.

  • 批量推送时间设置: 初次批量推送时间设置, 例如设置为 12:00:00 , 则会在当天的 12:00:00 进行一次批量推送.

  • 批量推送时间间隔: 设置每隔多少秒推送一次任务结果, 默认为 86400 秒, 即每隔一天批量推送本次推送时间前86400秒内的任务结果.

基于 MIT 许可证发布.