电脑开关机邮件提醒

This is an article that was created 515 days ago, and the information may have evolved or changed.

最近测试了python脚本执行钉钉机器人发消息和邮件发送,本想集成到上一篇文章中的脚本里,奈何想不到比较实用的场景。

突然想到自己的台式电脑是来电自动开机的设置,略有所思后想到把开关机事件自动发送邮件。

本人平生不知道注册多少个邮箱,想到163邮箱用的很少,所有就用它。登陆后发现里头有很多未读邮件,有安全提示和各种广告,都是几年前的了,估计是邮箱被盗用,全球各地的IP地址登陆和某位苹果玩家拿我邮箱修改了Apple ID……

一顿操作后把授权码弄出来了(1毛短信费),这个钉钉机器人就不记录操作步骤了,搜索引擎遍地都是,下面记录电脑开关机事件自动发送邮件过程。

获取邮箱授权码

这个步骤各大在线邮箱都差不多,基本都能在设置中找到

安装yagmail库

这是个第三方库,看到搜索引擎上满满的手写一大段代码填写邮件参数,这玩意儿还能这么不智能,不就是跟foxmail客户端一样填那几样参数么,所以使用yagmail,简单

1
pip install yagmail

代码

由于是两个不同的事件邮件,我分两个python脚本

auto_email_strtup.py

1
2
3
4
5
6
7
8
9
10
11
12
import yagmail
from datetime import datetime

# 连接服务器
yag = yagmail.SMTP(user="一三九啤酒白酒葡萄酒@163.com", password="此处填写授权码",host='smtp.163.com')

# 编辑邮件内容
time_str = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
content = [f'时间:{time_str}', '事件:台式电脑开机']

# 发送邮件,to = 收件人邮箱
yag.send(to = '一三八吃吧吃吧吃吧吃吧@139.com', subject='电脑开关机事件', contents = content)

auto_email_shutdown.py

1
2
3
4
5
6
7
8
9
10
11
12
import yagmail
from datetime import datetime

# 连接服务器
yag = yagmail.SMTP(user="一三九啤酒白酒葡萄酒@163.com", password="此处填写授权码",host='smtp.163.com')

# 编辑邮件内容
time_str = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
content = [f'时间:{time_str}', '事件:台式电脑关机']

# 发送邮件,to = 收件人邮箱
yag.send(to = '一三八吃吧吃吧吃吧吃吧@139.com', subject='电脑开关机事件', contents = content)

由于是windows电脑,还需要编写两个bat脚本中转运行以上代码

auto_email_strtup.bat

1
python F:\xxxx\auto_email_startup.py

auto_email_shutdown.bat (需手动指定python解释器路径)

1
C:\Python3.x.x\python.exe F:\xxxx\auto_email_shutdown.py

window设置计划任务和组策略

开机自动邮件的设置

ScreenCaputure230422165806

ScreenCaputure230422170340

ScreenCaputure230422170354

ScreenCaputure230422170403

ScreenCaputure230422170421

ScreenCaputure230422170440

ScreenCaputure230422170550

关机自动邮件的设置

ScreenCaputure230422213012

ScreenCaputure230422213535

ScreenCaputure230422213610

dingtalkchatbot插件

夹带钉钉机器人发消息的代码,使用到以上这个库,具体见dingtalkchatbot插件

首先登陆钉钉,创建一个群,添加机器人,记录生成的webhook等参数

可以把以下代码组装成一个可传参的函数,调用的时候传递参数msg

可以设置各种条件发送不同的msg

电脑和手机已卸载钉钉,就没截图了

1
2
3
4
5
6
7
8
9
10
11
12
from dingtalkchatbot.chatbot import DingtalkChatbot, ActionCard, CardItem
# WebHook地址
webhook = 'WebHook地址'
secret = 'secret' # 可选:创建机器人勾选“加签”选项时使用
# 初始化机器人小丁
# xiaoding = DingtalkChatbot(webhook) # 方式一:通常初始化方式
xiaoding = DingtalkChatbot(webhook, secret=secret) # 方式二:勾选“加签”选项时使用(v1.5以上新功能)
# xiaoding = DingtalkChatbot(webhook, pc_slide=True) # 方式三:设置消息链接在PC端侧边栏打开(v1.5以上新功能)
# Text消息是否@所有人
res = xiaoding.send_text(msg='DSB,我就是小丁,小丁就是我!', is_at_all=False)
# 返回结果显示
print(res)

最后

20230422173407 20230422173130
  • 如果网络环境允许的话,可以编写python脚本探测设备的可达性、根据设备的告警阀值触发邮件发送和机器人信息发送,或其他条件触发

  • 欢迎“来电”来函探讨

Ubuntu publickey方式SSH连接与vscode远程调试 一个使用nornir框架编写的跑脚本工具
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×