tthy
(天天忽悠)
1
有这样一个需求:发送一个GET或者POST请求,到服务端,然后服务端能够给一个邮箱发送邮件,标题、内容根据请求信息自动生成。最好是能docker cli 一把梭就能部署的。
自己折腾了一下,homeassistant 确实可以由post请求触发预先配置好的自动化项目来发邮件,但是邮件内容好像只能是预先配置好的。
另外,饭碗警告、Server 酱都能实现这个功能,但是我想要的是个纯内网服务,这样,我的各个虚拟机、容器各跑各的项目,然后结果通过http请求发送到这个自动发邮件的服务端后,由这个自动发邮件的项目统一给我发邮件做提醒。
qinshou
(秦寿)
2
我是在win机器上跑了个定时任务,执行一个批处理,启动php脚本写的测试断言,查看服务器状态,然后通过qq邮箱的smtp发出去的。每天早上自动查一下各种服务器状态。
你这个需求,大概就是把我现在用的cli方式改成网页的方式放支持php的web server上吧。
lilyhcn1
(lilyhcn1)
3
你这个想法挺不错的,我改改程序应该能满足你的要求。
tthy
(天天忽悠)
4
可能我的需求确实比较小众,举个例子
我是。。。all in boom 玩家
首先一个容器部署 next terminal 来统一管理设备和执行crontab任务。
这就是每5分钟ping 某一台虚拟机,如果ping不通则发送http请求
这个http请求接收端是我另一个自建容器,可以根据请求执行各种shell命令(比如启动虚拟机)
现在就是想ping 不通时发送2个http请求,一条用于执行shell命令,另一条就是给我发邮件进行提醒。
当然这个需求也不仅是为了监控设备服务,还有一些别的想法,暂时还在琢磨
lkainan
(lkainan)
5
zabbix 有点像能完成你的要求。
我主要是监控网络。
例如,让我检测到我的IP不通的时候,执行mtr(路由监测),然后发送给邮箱。
我都忘记我咋个实现的了。。
tthy
(天天忽悠)
6
我这个需求倒也不是完全为了监控设备在线状态,还有一些别的想法暂未实现
如果是为了监控设备 最近刚扔去收藏夹吃灰的 Uptime Kuma 就可以满足,监控类型有 http tcp ping等等,支持几十种通知。。。。
lkainan
(lkainan)
7
Uptime Kuma 这个我也在用。
自动发邮件的话,可以试试mail。 我记得系统内设置是在mailc还是哪个文件,我忘了。
tthy
(天天忽悠)
8
但是这个没法根据 请求内容填写邮件内容啊=。=
我前面提到的webhook 执行 shell命令的方案,只能根据不同请求发送提前预设好内容的邮件。。。
qinshou
(秦寿)
9
你都能执行shell了,还发不了mail吗?发mail就是在执行shell的环境里安装个程序包并配置一下的事情啊。当然,docker环境下未必有安装,这东西应该可选可配置吧。好久不弄了,忘了。
tthy
(天天忽悠)
11
你看我前面回复啊,现在是发送请求到对应url执行预设命令。是可以发邮件,但是邮件内容只能是预设的,无法从请求中提取。(也可能是我不会弄,我只会弄弄那个现成的 )
我的预期是,可以直接把标题和内容加在请求里一起发送,然后邮件自动生成标题和 内容 并发送
tthy
(天天忽悠)
12
挺不错的,主要我不想多装个Telegram,再等等看有没有大佬
Rackar
(Rackar)
14
我用nodejs搭了一个简易的邮件通知,测试是没问题了。结果在接收了几次通知邮件后,被QQ邮箱认定是垃圾邮件,不给我接收了。
现在又做了一个企业微信的小应用来提醒,允许的自定义程度挺高,也没有公众号一类的严格次数限制啥的。
tthy
(天天忽悠)
15
我记得企业微信机器人直接支持webhook 可以直接post请求发推送
dddd
(比尔·盖茨)
17
curl不就可以发送邮件吗,还是说内网的服务不能连外网所以访问不到外网上面的服务器?
dddd
(比尔·盖茨)
19
把服务器和用户名密码替换成你自己的应该就可以了,可以尝试一下
cat << EOF > mail.txt
From:ddd<[email protected]>
To:[email protected]
Subject: From Curl
你好,这封邮件来自于curl
date: `date`
EOF
curl \
--verbose \
-s \
--url 'smtps://smtp.yeah.net:465' \
--ssl-reqd \
--mail-from [email protected] \
--mail-rcpt [email protected] \
--user "[email protected]:password" \
--upload-file mail.txt
rm mail.txt
1 个赞
lilyhcn1
(lilyhcn1)
20
docker pull lilyhcn1/fastapi
新封装的一个docker,帮我试试不。原理就是用python发邮件(暂时找到QQ邮箱),很粗糙,但密码一类的填对能用。
发送方式如下:
192.168.7.105:8000/gn/发邮件?主题=你好&内容=fdsfds&收件人[email protected]&发件人[email protected]&密码=VVVVV
不想装docker的可以公网测试一下,三天左右删除。
http://api2.r34.cc/gn/发邮件
1 个赞