利用Python帮你偷懒自动拍摄开机人照片发送指定邮箱
笔记本电脑的提供了便携性,同时也带来了一些问题,最常见的就是弄丢电脑,或者是笔记本电脑未设置开机密码被其他人随意开机。那么我们如何解决这个问题呢?通过python,我们可以在笔记本电脑开机后,自动打开电脑的摄像头,并拍摄照片,可以拍摄下开机人的照片,然后将照片自动发送至制定邮箱。这样笔记本电脑的拥有者就可以通过邮箱查看是何人何时开启了这台电脑。import cv2 from email.mime.multipart import MIMEMultipart from email.header import Header from email.mime.text import MIMEText from smtplib import SMTP_SSL from email.mime.image import MIMEImage def get_photo(): cap = cv2.VideoCapture(0) #开启摄像头,0表示默认摄像头 f, frame = cap.read() #获取摄像头所拍摄的内容 cv2.imwrite("image.jpg", frame) #保存为jpg图片格式文件 cap.release() #关闭摄像头 def send_message(): #设置邮箱参数 host_server = "smtp.qq.com" #邮件服务 pwd = "XXXXXXXXXX" #填入smtp的授权码或者密码 from_qq_mail="XXXXXXXX@qq.com" #填入自己的邮箱 to_qq_mail = "XXXXXXXX@qq.com" #填入自己的邮箱 with open("image.jpg", "rb")as fp: image = MIMEImage(fp.read()) image["Content-Type"] = "application/octet-stream" image["Content-Disposition"] = "attachment;filename="image.jpg"" msg = MIMEMultipart() #创建邮件格式 msg["Subject"] = Header("开机照片", "UTF-8") #邮件主题 msg["From"] = from_qq_mail #发件人 msg["To"] = to_qq_mail #收件人 msg.attach(MIMEText("开机照片", "html", "UTF-8")) #邮件内容 msg.attach(image) #邮件附件 smtp = SMTP_SSL(host_server) #连接邮箱 smtp.login(from_qq_mail, pwd) smtp.sendmail(from_qq_mail, to_qq_mail, msg.as_string()) smtp.quit() if __name__=="__main__": get_photo() send_message()
我们可以把上述python程序添加到计划任务里,也可以打包成exe文件放到开机自启动文件夹下,实现自动运行。
注意:当使用邮箱作为第三方邮件服务器的时候,需要在邮箱的设置中手动开启POP3/SMTP服务。如何打开POP3/SMTP/IMAP功能?_QQ邮箱帮助中心
https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=166