可以监控文件夹文件的变化,配置文件中设置发件邮箱及要监控的文件夹路径,存放日志的路径,接收通知的邮箱(最后一行开始往下放,一行一个邮箱,理论无限个,测试二十多个邮箱正常发送)。
- U! I+ H7 I/ O. `3 U% l$ }2 A
& q7 V6 `8 n. h( U# [7 ^7 \3 M2 p) ~. U/ H 运行软件后同目录下会多出一个傻瓜监测日志.log用以存放控制台输出的显示,傻瓜检测报错.log用以存放控制台输出的报错(报错日志是追加,显示日志是覆盖)在日志存放路径会生成当前年份的文件夹,第二次运行的话会把上一次的给打包成压缩包。减少空间占用。
& H; V4 _. h5 |: i if os.path.getsize(lujing + '\\wjjcha.txt') or os.path.getsize(lujing + '\\wjcha.txt'):
print('指定的文件不为空')
wjjzhengwen = ''
wjzhengwen = ''
if os.path.getsize(lujing + '\\wjjcha.txt'):
with open(lujing + '\\wjjcha.txt', "r") as f: # 打开文件
wjjneirong = f.read() # 读取文件
wjjzhengwen = '新增的文件夹为:\n' + wjjneirong
if os.path.getsize(lujing + '\\wjcha.txt'):
with open(lujing + '\\wjcha.txt', "r") as f: # 打开文件
wjneirong = f.read() # 读取文件
wjzhengwen = '新增的文件为:\n' + wjneirong
youjianzhengwen = wjjzhengwen + wjzhengwen
try:
message = MIMEText(youjianzhengwen, 'plain',
'utf-8')
message['From'] = Header("文件管理员", 'utf-8')
message['To'] = Header("你", 'utf-8')
subject = '共享文件夹发生了变化'
message['Subject'] = Header(subject, 'utf-8')
smtpObj = smtplib.SMTP()
smtpObj.connect(peizhilist[1], 25) # 25 为 SMTP 端口号
smtpObj.login(peizhilist[3], peizhilist[5])
smtpObj.sendmail(peizhilist[7], shoulist, message.as_string())
print("邮件发送成功")
except smtplib.SMTPException:
print("Error: 无法发送邮件") 如果上一分钟检测到文件变化发了邮件,这次就会退出不检测。(因为发的太快邮件会出错发不出去或者卡住),切记别把最后一次运行的文件夹给删掉,检测到日志目录存在但是找不到对比的日志存在会报错的(可以把以前的文件夹解压出来解决,只要能有一个对比的日志就不会报错)。% q3 f; t6 ?8 A1 R% n4 l
9 H+ Z# H- c, [* q: V- c$ R7 p, x2 u6 ? T
|