Python实现定时截图并发送给指定邮箱

实用知识 7年前 (2017) 工具猫
6,502 0

Python实现定时截图并发送给指定邮箱

1.截图使用的是PIL,简单

from PIL import ImageGrab
im = ImageGrab.grab()
im.sav('test2.png')

 

2.邮件发送,有很多例程

3.定时使用的Timer

def delayrun():
     print("test   test")
t = Timer(timer_interval,delayrun())
t.start()
#延时
while True:
     time.sleep(10) #时间
     getDesktopimg()
     send_mail(mailto_list,"截图")

 

4.效果

Python实现定时截图并发送给指定邮箱

 

5.代码

 # -*- coding: UTF-8 -*-
import smtplib
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from PIL import ImageGrab
from threading import Timer
import time
#线程间隔
timer_interval =1
#邮箱相关配置
mailto_list=['*******@qq.com']#接受邮箱
mail_host = "smtp.139.com"#发送邮箱smtp服务器
mail_user = "*******@139.com"#发送邮箱
mail_pass = "********"#发送邮箱密码
#发送邮件函数
def send_mail(tolist,sub):
 #图片添加函数
 def addimg(src,imgid):
 fp = open(src,'rb')
 msgImage = MIMEImage(fp.read())
 fp.close()
 msgImage.add_header('Content-ID',imgid)
 return msgImage
 msg = MIMEMultipart('related')
 #邮件内容
 msgtext = MIMEText("""
 <h2>桌面截图</h2>
 <img src= "cid:io">
 ""","html","utf-8")
 msg.attach(msgtext)
 msg.attach(addimg("test2.png","io"))
 msg['Subject'] = sub#邮件主题
 msg['From'] = mail_user#邮件发送者
 msg['To'] =";".join(tolist)#邮件接收者
 try:
 server = smtplib.SMTP()
 server.connect(mail_host)#链接邮件smtp服务器
 server.login(mail_user,mail_pass)#登录邮箱
 server.sendmail(mail_user,tolist,msg.as_string())#发送
 server.close()#关闭
 return True
 except :
 return False
def getDesktopimg():
 im = ImageGrab.grab()#截取桌面图片
 im.save("test2.png")#保存为test2.png
def delayrun():
 print("test test")
t = Timer(timer_interval,delayrun())
t.start()
#延时
while True:
 time.sleep(10)#时间
 getDesktopimg()
 send_mail(mailto_list, "截图")

出处:http://zzesxiao.leanote.com/post/Python_desktopscreenshot

版权声明:工具猫 发表于 2017-07-10 7:15:45。
转载请注明:Python实现定时截图并发送给指定邮箱 | 工具猫