可以监控文件夹文件的变化,配置文件中设置发件邮箱及要监控的文件夹路径,存放日志的路径,接收通知的邮箱(最后一行开始往下放,一行一个邮箱,理论无限个,测试二十多个邮箱正常发送)。
l( r% f1 V8 P. G3 T r# L* R7 `
! z+ w( k) X6 f) p8 A6 `% F Y
运行软件后同目录下会多出一个傻瓜监测日志.log用以存放控制台输出的显示,傻瓜检测报错.log用以存放控制台输出的报错(报错日志是追加,显示日志是覆盖)在日志存放路径会生成当前年份的文件夹,第二次运行的话会把上一次的给打包成压缩包。减少空间占用。1 H5 G& w, c9 I' t2 N
- 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: 无法发送邮件")
如果上一分钟检测到文件变化发了邮件,这次就会退出不检测。(因为发的太快邮件会出错发不出去或者卡住),切记别把最后一次运行的文件夹给删掉,检测到日志目录存在但是找不到对比的日志存在会报错的(可以把以前的文件夹解压出来解决,只要能有一个对比的日志就不会报错)。6 ?# E8 B. d$ c; [4 P
5 K* f5 g: I/ _- c: U# V$ H
% a% V) t8 l7 `1 C, |. T5 @ |