可以监控文件夹文件的变化,配置文件中设置发件邮箱及要监控的文件夹路径,存放日志的路径,接收通知的邮箱(最后一行开始往下放,一行一个邮箱,理论无限个,测试二十多个邮箱正常发送)。; z. E9 m- {+ O# {; G
, [8 {1 a" m% i* b+ ]: N0 x m9 ~
运行软件后同目录下会多出一个傻瓜监测日志.log用以存放控制台输出的显示,傻瓜检测报错.log用以存放控制台输出的报错(报错日志是追加,显示日志是覆盖)在日志存放路径会生成当前年份的文件夹,第二次运行的话会把上一次的给打包成压缩包。减少空间占用。5 J( m1 o4 X- y3 I" ^) G
- 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: 无法发送邮件")
如果上一分钟检测到文件变化发了邮件,这次就会退出不检测。(因为发的太快邮件会出错发不出去或者卡住),切记别把最后一次运行的文件夹给删掉,检测到日志目录存在但是找不到对比的日志存在会报错的(可以把以前的文件夹解压出来解决,只要能有一个对比的日志就不会报错)。 3 x- S- o! H& [+ S
+ m0 [6 D5 G! _5 i
6 }4 b9 F$ y, o9 O2 `# y
|