最近有一个场景需要监控家里的电脑的开机情况,远程操作开机并启动一些服务,

需要知道开机状态。实现开机之后自动发送邮件通知。(七月更新增加:采用Windows任务计划完成开机发送邮件,高效快捷)



网上有很多大神都是直接自己手撸代码,实现一个Windows服务,或者VB写的,过于专业。
小白只想偷懒,于是找到了一个工具 Blat官网 可以直接实现邮件功能

1. 首先下载Blat

工具下载地址 https://sourceforge.net/projects/blat/files/ 。解压放到C盘创建的全英文目录下

2. 创建bat文件

在当前目录新建一个 send.bat 文件,因为电脑开机连接网络需要时间,所以发送20次ping做延迟发送
可以根据自己的实际网络情况调整, C:\quickStart\blat3222\full\blat.exe 替换成你自己的路径
填入以下内容。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
::chcp 65001 设置编码,防止中文乱码
::最后加入 pause 可显示窗口用于排查问题,可删除
chcp 65001

rem ----延时执行----
@echo off
ping www.baidu.com -n 20
f:

rem ----邮件主题----
set s="%time% %computername% 开机"
rem ----邮件内容-----
set body="%date% %time% %computername% %username% 开机"
rem ----收件邮箱-----
set t=xxx@qq.com
rem ----发件邮箱-----
set f=xxx@163.com
rem ----邮箱秘钥-----
set pw=xxx
rem ----执行发送-----
C:\quickStart\blat3222\full\blat.exe -body %body% -s %s% -t %t% -server smtp.163.com -f %f% -u %f% -pw %pw%
::pause

配置说明

  1. %date% 会显示为电脑日期
  2. %time% 会显示为电脑时间
  3. %computername% 会显示为电脑名称
  4. %username% 会显示为电脑用户名
  5. - server参数 如果用QQ邮箱发送填 smtp.qq.com;163邮箱发送填smtp.163.com

3. 测试运行

双击send.bat即可触发运行

收到邮件

4. 设置自启发送

方法一:配置window任务计划程序(开机就触发,推荐)

找到任务计划程序。创建一个文件夹,然后右键 创建基本任务。输入任务名称(随意名称)




脚本选择创建好的send.bat

勾选 打开此任务属性对话框

配置不管用户是否登录都要运行、最高权限(会需要输入账户密码)

编辑触发器设置延迟执行(防止启动时电脑还未完成联网,导致发送邮件失败)

条件栏-去掉电源选项,勾选网络选项

点击确定-输入密码-重启验证即可


方法二:加入Windows自启项目录(需要用户登录之后,才能触发)

win+R打开运行窗口 -> 输入shell:startup

选中 send.bat 右键创建快捷方式,将快捷方式移动到启动目录

添加之后,可以在应用-启动中看到


设置完成,重启测试即可!