from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
from time import sleep
import smtplib
from email.mime.text import MIMEText
from email.header import Header
class WatchFiles(FileSystemEventHandler):
def on_moved(self, event):
content = "file has been moved {}".format(event.src_path)
print(content)
send_email(content)
def on_created(self, event):
content = "file has been create {}".format(event.src_path)
print(content)
send_email(content)
def on_deleted(self, event):
content = "file has been deleted {}".format(event.src_path)
print(content)
send_email(content)
def on_modified(self, event):
content = "file has been modified {}".format(event.src_path)
print(content)
send_email(content)
def send_email(content):
# 第三方邮件服务系统
mail_host = "smtp.**.com" # 设置服务器
port = 8080 # 服务器端口号
mail_user = "user" # 用户名
mail_pass = "password" # 口令
sender = 'test' # 发送邮箱
receivers = ['test1'] # 接收邮件
message = MIMEText(content, 'plain', 'utf-8')
message['From'] = Header("邮箱测试", 'utf-8')
message['To'] = Header("邮箱测试", 'utf-8')
subject = '邮件测试'
message['Subject'] = Header(subject, 'utf-8')
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, port)
smtpObj.login(mail_user, mail_pass)
smtpObj.sendmail(sender, receivers, message.as_string())
print("邮件发送成功")
except smtplib.SMTPException:
print("Error: 无法发送邮件")
if __name__ == '__main__':
observer = Observer()
watch_file = WatchFiles()
path = r'D:\pyfile'
observer.schedule(watch_file, path, True)
observer.start()
try:
while True:
sleep(2)
except KeyboardInterrupt:
observer.stop()
observer.join()
编码不易,望采纳
追答send_email不是class里面的内置函数,是外部的
本回答被提问者采纳