# 通知配置 > 备注:如果点击`测试` 无法接收到消息,可尝试给`剩余天数` 设置一个比较大的值大 ## 1、邮件 第一步:需要在 `系统管理/系统设置/邮箱设置` 中设置好系统发件邮件 > 如果需要对域名进行到期监控和邮件提醒,必须设置发件邮件 注意: 1. 如果使用的是163邮箱,密码处填写的是`授权码` ![](https://raw.githubusercontent.com/mouday/domain-admin/master/image/system-list.png) 第二步:填写收件人列表 ![](https://raw.githubusercontent.com/mouday/domain-admin/master/image/notify-email.png) 需要填写json格式的数据,例如: ```json [ "tom@qq.com", "jack@qq.com" ] ``` ## 2、WebHook ### 2.1、webhook发送微信消息 可以使用的微信推送平台有很多,可以参考 [微信推送消息通知接口汇总](https://pengshiyu.blog.csdn.net/article/details/124135877) ### 2.2、webhook发送钉钉消息 文档:[https://open.dingtalk.com/document/orgapp/custom-bot-send-message-type](https://open.dingtalk.com/document/orgapp/custom-bot-send-message-type) webhook地址 ``` https://oapi.dingtalk.com/robot/send?access_token= ``` 设置请求头 ```json { "Content-Type": "application/json" } ``` 示例:SSL证书到期(文本格式) ```json { "msgtype": "text", "text": { "content": "以下证书临期,请检查:\n {% for row in list %}{{row.domain}} {{row.start_date or '-' }} ~ {{row.expire_date or '-' }} (剩余{{row.expire_days}}天)\n{% endfor %}" } } ``` 示例:SSL证书到期(markdown格式) ```json { "msgtype": "markdown", "markdown": { "title": "SSL证书到期提醒", "text": "### SSL证书到期提醒 🔔\n\n| 域名 | 到期 |\n| ---- | ---- |\n{% for row in list %}| {{row.domain}} | {{row.expire_date or '未知'}}({{row.expire_days}}天) |\n{% endfor %}\n\n> 请及时更新即将到期的SSL证书。" } } ``` 示例:网站监控异常(markdown格式) ```json { "msgtype": "markdown", "markdown": { "title": "网站监控异常提醒", "text": "{{monitor_row.title}} 监测异常,请检查:\n 请求URL:{{monitor_row.http_url}} 重试次数:{{monitor_row.allow_error_count}} 状态:{% if monitor_row.status==2 %}失败{% elif monitor_row.status==1 %}成功{% else %}未知{% endif %}" } } ``` 可以参考 [@PanZongQing](https://github.com/PanZongQing) 分享的钉钉webhook配置: [对接钉钉群内自定义webhook机器人发送告警注意事项](https://github.com/dromara/domain-admin/issues/47) ### 2.3、webhook发送Resend邮件 Resend 是一个为开发者提供的email 接口 工作原理:通过api接口使用HTTP协议发送邮件到Resend服务器,再通过Resend服务器使用SMTP协议发送邮件到目标邮箱 步骤: 1、注册账号:[https://resend.com/](https://resend.com/) 2、获取API Key 3、配置webhook - 请求方法: POST - 请求地址: https://api.resend.com/emails - 请求头 ```json { "Authorization": "Bearer ", "Content-Type": "application/json" } ``` - 请求体 ```json { "from": "onboarding@resend.dev", "to": "123456@qq.com", "subject": "Hello World", "html": "

证书到期提醒

" } ``` ### 2.4、webhook配置showdoc showdoc是一个从服务器推送消息到手机的工具,可以通过api接口推送到微信服务号消息 注册地址:[https://push.showdoc.com.cn/](https://push.showdoc.com.cn/) - 请求方法: POST - 请求地址: ```bash https://push.showdoc.com.cn/server/api/push/ ``` - 请求头 ```json { "Content-Type": "application/json" } ``` - 请求体 ```json { "title": "域名到期提醒", "content": "{% for row in list %}{{row.domain}} {{row.start_date or '-' }} - {{row.expire_date or '-' }} ({{row.expire_days}}){% endfor %}" } ``` ### 2.5、webhook发送飞书消息 模板示例由微信群友@kaka 提供 ```json { "msg_type": "interactive", "card": { "config": { "wide_screen_mode": true, "enable_forward": true }, "elements": [{ "tag": "div", "text": { "tag": "plain_text", "content": "", "lines": 1 } , "fields": [ { "text": { "tag": "lark_md", "content": "**域名证书 **:
    {%- for row in list %} {%- if row.expire_days > 0 %}
  • {{row.domain}} {{"当前域名或证书 申请时间: "}} {{row.start_date or '-' }} - {{"到期时间: "}} {{row.expire_date or '-' }} {{"剩余: "}}( {% if row.expire_days > 0 %} {{row.expire_days}} {% endif %} ) {{"天; "}} {% endif %} {% endfor %}
" } } ] }, { "actions": [{ "tag": "button", "text": { "content": "域名或证书过期提醒 :玫瑰:", "tag": "lark_md" }, "url": "https://dc.console.aliyun.com/", "type": "primary", "value": { "chosen": "approve" } }], "tag": "action" }], "header": { "title": { "content": "域名或证书过期 告警", "tag": "plain_text" }, "template": "red" } } } ``` ### 2.6、webhook发送企业微信消息 文档:[https://developer.work.weixin.qq.com/document/path/99110](https://developer.work.weixin.qq.com/document/path/99110) webhook地址 ``` https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa ``` 消息体 ```json { "msgtype": "text", "text": { "content": "广州今日天气:29度,大部分多云,降雨概率:60%", "mentioned_list":["wangqing","@all"], "mentioned_mobile_list":["13800001111","@all"] } } ``` 示例:监控证书到期(文本格式) ```json { "msgtype": "text", "text": { "content": "SSL证书到期提醒:{% for row in list %}{{row.domain}} {{row.start_date or '-' }} - {{row.expire_date or '-' }} ({{row.expire_days}}){% endfor %}" } } ``` 示例:监控证书到期(markdown格式) ```json { "msgtype": "markdown", "markdown": { "title": "SSL证书到期提醒", "content": "### SSL证书到期提醒 🔔\n\n| 域名 | 生效日期 | 到期日期 | 剩余天数 |\n| ---- | -------- | -------- | :--------: |\n{% for row in list %}| {{row.domain}} | {{row.start_date or '未知'}} | {{row.expire_date or '未知'}} | {{row.expire_days}}天 |\n{% endfor %}\n\n> 请及时更新即将到期的SSL证书,以确保网站安全性。" } } ``` 示例:网站监控异常 ```json { "msgtype": "markdown", "markdown": { "content": "{{monitor_row.title}}监测提醒,请相关同事注意。\n >请求URL:{{monitor_row.http_url}} >重试次数:{{monitor_row.allow_error_count}} >状态:{% if monitor_row.status==2 %}失败{% elif monitor_row.status==1 %}成功{% else %}未知{% endif %}" } } ``` ## 3、企业微信 ```json { "touser": "UserName", "msgtype": "text", "agentid": 1000001, "text": { "content": "你的域名证书即将到期\n点击查看Domain Admin" } } ``` 自定义通知模板示例 ```json { "touser": "UserName", "msgtype": "text", "agentid": 1000001, "text": { "content": "SSL证书到期提醒:\n{% for row in list %}{{row.domain}} {{row.group_name or '-'}} ({{row.expire_days}}){% endfor %}" } } ``` 参考:[https://developer.work.weixin.qq.com/document/path/90236](https://developer.work.weixin.qq.com/document/path/90236) ## 4、钉钉 ```json { "agent_id": "", "userid_list": "", "msg": { "msgtype": "text", "text": { "content": "域名或证书过期提醒" } } } ``` 参考文档:[https://open.dingtalk.com/document/orgapp/asynchronous-sending-of-enterprise-session-messages](https://open.dingtalk.com/document/orgapp/asynchronous-sending-of-enterprise-session-messages) ## 5、飞书 ```json { "receive_id": "", "msg_type": "text", "content": "{\"text\":\"域名或证书过期提醒\"}" } ``` 参考文档:[https://open.feishu.cn/document/server-docs/im-v1/message/create](https://open.feishu.cn/document/server-docs/im-v1/message/create) ## 6、模板和参数 采用`jinja2` 模板引擎 WebHook、企业微信、飞书、钉钉均支持自定义通知模板 ### 6.1、通用示例 传入模板的参数示例: ```json { "list":[ { "domain": "www.demo.com", "start_date": "2023-06-01", "expire_date": "2023-06-21", "expire_days": 20 } ] } ``` 参数说明 | 参数 | 类型 | 说明 | | -| - | - | | domain | string | 域名/证书域名 | start_date | string | 生效时间 | expire_date | string | 过期时间 | expire_days | int | 剩余天数 > 备注:list仅包含满足通知条件的数据 示例 ```json { "title": "域名到期提醒", "content": "{% for row in list %}{{row.domain}} {{row.start_date or '-' }} - {{row.expire_date or '-' }} ({{row.expire_days}}){% endfor %}" } ``` 渲染结果 ```json { "title": "域名到期提醒", "content": "www.demo.com 2023-06-01 - 2023-06-21 (20)" } ``` 不同的事件参数稍有不同,会有其独特的参数 ### 6.2、域名到期 ```json { "list": [ { "id": 9, "user_id": 1, "domain": "www.baidu.com", "group_id": 9, "group_name": "百度系", "comment": "备注", "start_time": "2010-08-28 04:11:35", "expire_time": "2023-08-28 04:11:35", "start_date": "2010-08-28", "expire_date": "2023-08-28", "expire_days": 5, "domain_registrar": "厦门易名科技股份有限公司", "domain_registrar_url": "https://www.ename.net/", "icp_company": "北京百度网讯科技有限公司", "icp_licence": "京ICP证030173号-1", "tags": [ "企业服务", "汽车服务" ], "tags_str": "企业服务、汽车服务", "is_auto_update": true, "is_expire_monitor": true, "create_time": "2023-07-20 22:59:20", "update_time": "2023-08-22 16:01:13", "update_time_label": "13分钟前" } ] } ``` ### 6.3、SSL证书到期 ```json { "list": [ { "id": 3, "user_id": 1, "domain": "www.baidu.com", "root_domain": "baidu.com", "port": 443, "group_id": 4, "group_name": "百度系", "comment": "备注字段", "start_time": "2023-07-06 09:51:06", "expire_time": "2024-08-06 09:51:05", "start_date": "2023-07-06", "expire_date": "2024-08-06", "expire_days": 349, "is_auto_update": true, "is_expire_monitor": true, "is_dynamic_host": false, "create_time": "2023-08-22 16:28:19", "update_time": "2023-08-22 16:28:19", "update_time_label": "刚刚" } ] } ``` ### 6.4、监控异常 异常通知和异常恢复通知的字段一致 ```json { "monitor_row": { "title": "名称", "http_url": "请求URL", "allow_error_count": 3, "status": 2 }, "error": "报错信息" } ``` 参数说明 | 参数 | 类型 | 说明 | | -| - | - | | error | string | 报错信息 | monitor_row.title | string | 名称 | monitor_row.http_url | string | 请求URL | monitor_row.allow_error_count | int | 重试次数 | monitor_row.status | int | 状态:0未知,1成功,2失败