github地址
1 |
https://github.com/qist/anymsg |
配置文件(cfg.json 是纯json格式)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
{ "debug": true, "http": { "listen": "0.0.0.0:4000", //监听ip端口 "allow":["*"],// 填写ip,"*" 代表允许全部 "deny":[] }, "smtp": {//邮件配置 "address": "smtp.exmail.qq.com:25",//邮件发送服务器地址 "username": "qist@example.com", "password": "123456", "authtype":"LOGIN"//认证类型/CRAM-MD5/LOGIN/PLAIN,默认PLAIN }, "wechat":{//企业微信配置 "CorpID":"w02234285a42", //企业ID "AgentId":1000000,//应用id,通过新建企业微信应用>获取 "Secret":"5WsjwD2DqyR4PvyOothRjDAZs>aKc"//密串,企业微信应用中可以得到 } "dingding":{ "Url": "https://oapi.dingtalk.com/robot/send?access_token=%s", "AccessToken": "xxxxxxxxxxxxxxxxx" } "lark":{//飞书配置 "Url":"https://open.feishu.cn/open-apis/bot/v2/hook/%s", //钉钉机器人连接地址 "AccessToken":"xxxxxxxx" //创建飞书机器人后连接地址https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxxxxxxxxxxx , xxx的字符串就是AccessToken } } |
编译并运行
1 |
go build -o anymsg ./main/ |
1 |
./anymsg |
测试方法:
1.普通文本
1 2 3 4 5 6 7 8 9 |
#邮件 curl -d "to=test@qq.com,test@sina.com&subject=test&content=测试报文体" "http://10.1.1.202:4000/sender/mail"微信 curl -d "to=qist&&content=测试报文体" "http://10.1.1.202:4000/sender/wechat"钉钉 curl -d "to=qist&&content=测试报文体" "http://10.1.1.202:4000/sender/dingding"飞书 curl -H 'Content-Type: json' -d '{"content":"监控报警"}' "http://127.0.0.1:4000/sender/lark" 注:markdown格式的消息,请求体内关键字段:"msg_type": "markdown" |
2.企业微信
1 2 3 |
curl -H 'Content-Type: json' -d '{"to":"[人员id]","content": "您的会议室已经预定,稍后会同步到`邮箱 \n 事项详情 \n 事 项:<font color=\"info\">开会</font> \n 组织者:@miglioguan>参与者:@miglioguan、@kunliu、@jamdeezhou、@kanexiong、@kisonwang> \n 会议室:<font color=\"info\">广州TIT 1楼 301</font> \n日 期:<font color=\"warning\">2018年5月18日</font> \n 时 间:<font color=\"comment\">上午9:00-11:00</font> > \n 请准时参加会议。> \n 如需修改会议信息,请点击:修改会议信息" ,"msg_type": "markdown"}' "http://10.1.1.202:4000/sender/wechat" 注:markdown格式的消息,请求体内关键字段:"msg_type": "markdown" |
send.sh
1 2 3 4 5 6 7 |
curl -X POST -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" -d "message=<font color="#0000FF" size="7">CI/CD消息提醒</font> >**事项详情** >内容:<font color="#6666CC">${CI_PROJECT_NAME}项目正在发布,请各位悉知!</font> >发布环境:<font color=\"info\">${PRO}</font> >发布人:${GITLAB_USER_NAME} >发布时间:<font color=\"warning\">$(date "+%Y-%m-%d %H:%M:%S")</font> >如需查看Job详细信息,请点击:[查看发布详细](${CI_JOB_URL})" -d "dumpurl=${CI_JOB_URL}" -d "msgtype=markdown" https://www.yoyoask.com/kedu/kedu-lowcode-weixin.php |
3.钉钉机器人
1 2 |
钉钉机器人(钉钉机器人需要添加关键字,关键字在content里面包含就行,例如这里的"监控报警") curl 127.0.0.1:4000/sender/dingding -H 'Content-Type: json' -d '{"to":"user123","title":"监控报警","content": "#### 监控报警 \n > 9度,西北风1级,空气良89,相对温度73%\n > \n > ###### 10点20分发布 天气 \n" ,"msg_type": "markdown"}' |
4.lark机器人
1 |
curl -H 'Content-Type: json' -d '{"content":"监控报警"}' "http://127.0.0.1:4000/sender/lark" |
也可以自定打镜像
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
FROM golang:alpine LABEL maintainer="shooter<byshooter@163.com>" ENV GO111MODULE=on \ CGO_ENABLED=0 \ GOOS=linux \ GOARCH=amd64 \ GOPROXY="https://mirrors.aliyun.com/goproxy/,direct" WORKDIR /app COPY . . RUN go version && go build -o anymsg ./main FROM scratch COPY --from=0 /app/cfg.json /anymsg/config/cfg.json COPY --from=0 /app/anymsg /anymsg/anymsg EXPOSE 4000 ENTRYPOINT ["/anymsg/anymsg","--config=/anymsg/config/cfg.json"] |
启动
1 2 3 |
docker network create my_net docker run -d -p 4000:4000 -v /opt/config:/anymsg/config --name msg-sender --network my_net --restart=always registry.cn-shanghai.aliyuncs.com/shooer/anymsg:v1.1.0 |
企业微信官方文档参数解释
- 本文固定链接: https://www.yoyoask.com/?p=7210
- 转载请注明: shooter 于 SHOOTER 发表