python——发送邮件

  • 2019 年 10 月 8 日
  • 笔记

利用程序来发邮件的作用挺多的,在脚本运行时发送一个邮件给你,然后你可以知道脚本运行了,做到一个实时的监控。

import smtplib
from email.header import Header
def sendtheback(str):      sendemaillsddress = "你的邮箱"  #用于发送邮件的地址      sendemailpassword = "授权码"   #邮箱的密码      sendemailhost = "smtp.qq.com"  #邮箱的服务器地址      sendemailport = "465"  #端口      recuveremailaddress = "接收的邮箱"   #接收的邮箱      emailsubject = "关机"      emalicontent = str        message = MIMEText(emalicontent, 'plain', "utf-8")      message["From"] = Header(sendemaillsddress, "utf-8")      message["To"] = Header(recuveremailaddress, "utf-8")        emailclient = smtplib.SMTP_SSL(sendemailhost, sendemailport)      try:          emailclient.login(sendemaillsddress, sendemailpassword)          print("登录成功")      except:          print("登录失败")      else:          emailclient.sendmail(sendemaillsddress, recuveremailaddress, message.as_string())          print("发送完成")      finally:          emailclient.close()

主要程序很简单,登录然后发送内容,把传过来的str参数发送出去,然后记得把服务close掉就可以了

也可以利用摄像头拍摄一张照片,然后把截图发送出去

cap = cv2.VideoCapture(0)  cap.isOpened()  ret_flag, Vshow = cap.read()  pic_name = "example.png"  cv2.imwrite(pic_name, Vshow)  cap.release()  #中间要有你的邮箱和授权
message['Subject'] = subject  message['From'] = sender  message['To'] = receivers  content = MIMEText('<html><body><img src="cid:imageid" alt="imageid"></body></html>', 'html', 'utf-8')  message.attach(content)  jpgpart = MIMEApplication(open(pic_name, 'rb').read())  jpgpart.add_header('Content-Disposition', 'attachment', filename=pic_name)  message.attach(jpgpart)  try:      server = smtplib.SMTP_SSL("smtp.qq.com", 465)      server.login(sender, "授权码")      server.sendmail(sender, receivers, message.as_string())      server.quit()      print("发送成功")  except smtplib.SMTPException as e:      sendtheback("截图发送失败")

然后获取电脑桌面的截图:

content = MIMEText('<html><body><img src="cid:imageid" alt="imageid"></body></html>','html','utf-8')  message.attach(content)  img = ImageGrab.grab()  pic_name = time.strftime('%Y-%m-%d-%H-%M-%S')+'.jpg'  img.save(pic_name)  jpgpart = MIMEApplication(open(pic_name, 'rb').read())  jpgpart.add_header('Content-Disposition', 'attachment', filename=pic_name)  message.attach(jpgpart)  try:      server = smtplib.SMTP_SSL("smtp.qq.com",465)      server.login(sender,"授权码")      server.sendmail(sender, receivers, message.as_string())      server.quit()      print("发送成功")  except smtplib.SMTPException as e:      sendtheback("截图发送失败")

差不多就是这些简单的代码就可以实现利用上一篇的接收邮件,然后接收到邮件的内容,然后对内容判断,如果内容是要桌面截图,就调用桌面截图的代码,实现截图然后把截图发送出去。算是比较逼格的程序了。

人生苦短,我用python