设置Windows开机自动发送邮件教程

教程类 · 2024-05-17

最近有一个场景需要监控家里的电脑的开机情况,远程操作开机并启动一些服务,需要知道开机状态。实现开机之后自动发送邮件通知。(七月更新增加:采用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 替换成你自己的路径
    填入以下内容。

BAT文件内容

::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

配置说明

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

  1. 测试运行
    双击send.bat即可触发运行
    请输入图片描述

收到邮件
请输入图片描述

  1. 设置自启发送
    方法一:配置window任务计划程序(开机就触发,推荐)
    找到任务计划程序。创建一个文件夹,然后右键 创建基本任务。输入任务名称(随意名称)
    请输入图片描述
    请输入图片描述
    请输入图片描述
    请输入图片描述

脚本选择创建好的send.bat
请输入图片描述

勾选 打开此任务属性对话框
请输入图片描述

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

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

条件栏-去掉电源选项,勾选网络选项
请输入图片描述

点击确定-输入密码-重启验证即可
请输入图片描述

方法二:加入Windows自启项目录(需要用户登录之后,才能触发)
win+R打开运行窗口 -> 输入shell:startup
请输入图片描述

选中 send.bat 右键创建快捷方式,将快捷方式移动到启动目录
请输入图片描述

添加之后,可以在应用-启动中看到
请输入图片描述

设置windows执行计划任务隐藏弹窗
使用VBS脚本执行,

脚本内容:

DIM objShell
set objShell=wscript.createObject("wscript.shell")
iReturn=objShell.Run("cmd.exe /C D:\Files\APPService\AppReader.exe", 0, TRUE)

【D:\Files\APPService\AppReader.exe】为要执行的exe文件
隐藏窗口只需要设置Run的第二个参数为0即可,显示则设置为1;
在计划任务中把vbs脚本设置为开机启动程序
设置完成,重启测试即可!

Theme Jasmine by Kent Liao