python实现微信发送邮件关闭电脑功能


Posted in Python onFebruary 22, 2018

Python 通过微信邮件实现电脑关机,供大家参考,具体内容如下

通过手机微信发送QQ邮件给sina邮箱,然后利用python的pop3定时检查sina邮箱的邮件主题以及邮件来源,并在电脑执行相应的命令行实现关机。

Email_test【V1.0】

import poplib 
import os 
import time 
from email.parser import Parser 
from email.header import decode_header 
from email.utils import parseaddr 
 
#编码转换函数 
def decode_str(s): 
  value, charset = decode_header(s)[0] 
  if charset: 
    value = value.decode(charset) 
  return value 
 
#获取email主题 
def get_Subject(msg): 
  #提取Subject信息 
  Subject = msg.get('Subject') 
  #编码转换 
  Subject = decode_str(Subject) 
  return Subject 
 
def judge(Subject, e_addr): 
  if (Subject == '关机' and e_addr == '532101629@qq.com'): 
    return 1 
  else: 
    return 0 
 
#检索邮件主题 
def Check_Subject(host, user, password): 
  result = 0 
  try: 
    pop_connect = poplib.POP3(host=host, timeout=3) 
    print(pop_connect.getwelcome()) 
 
    pop_connect.user(user) 
    pop_connect.pass_(password) 
    print('Messages: %s. Size: %s' % pop_connect.stat()) 
 
    #服务器返回信息,消息列表,返回信息的大小。 
    number = len(pop_connect.list()[1]) 
    print('消息列表长度:', number) 
 
    #检索所有邮件 
    for index in range(1, number+1): 
      #获取第一封邮件信息 
      msglines = pop_connect.retr(index)[1] 
      # 可以获得整个邮件的原始文本(重新排版后的): 
      str = b'\r\n' 
      msg_content = str.join(msglines).decode('utf-8') 
      print('\n', msg_content) 
      #将原始邮件转换为email实例: 
      msg = Parser().parsestr(msg_content) 
 
      # 获取email主题 
      Subject = get_Subject(msg) 
      print(Subject) 
      # 获取email地址 
      email_addr = parseaddr(msg.get('From'))[1] 
      #信息判断 
      result = judge(Subject, email_addr) 
      print(result) 
      #根据判断结果,执行操作 
      if result == 1: 
        pop_connect.dele(index) 
        break 
    # 登出email 
    pop_connect.quit() 
    return result 
 
  except Exception as e: 
      print('login fail! ' + str(e)) 
      quit() 
 
def main(): 
  host = 'pop.sina.com' 
  user = '********@sina.com' 
  password = '********' 
  while 1: 
    result = Check_Subject(host, user, password) 
    if result == 1: 
      cmd = 'cmd /k shutdown -l' 
      os.system(cmd) 
      break 
    time.sleep(60) # 两次检索邮件的时间间隔60s 
 
main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python读取注册表中值的方法
Apr 08 Python
python中的计时器timeit的使用方法
Oct 20 Python
Python 数据处理库 pandas进阶教程
Apr 21 Python
深入浅析python 中的匿名函数
May 21 Python
python3第三方爬虫库BeautifulSoup4安装教程
Jun 19 Python
使用python将图片格式转换为ico格式的示例
Oct 22 Python
浅谈python编译pyc工程--导包问题解决
Mar 20 Python
Python绘制热力图示例
Sep 27 Python
利用python实现AR教程
Nov 20 Python
python中JWT用户认证的实现
May 18 Python
Python使用socketServer包搭建简易服务器过程详解
Jun 12 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
Oct 12 Python
python使用itchat实现手机控制电脑
Feb 22 #Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 #Python
Python3.4实现远程控制电脑开关机
Feb 22 #Python
python实现微信远程控制电脑
Feb 22 #Python
Python标准库笔记struct模块的使用
Feb 22 #Python
python实现手机通讯录搜索功能
Feb 22 #Python
Python实现通讯录功能
Feb 22 #Python
You might like
最令PHP初学者们头痛的十四个问题
2007/01/15 PHP
windows下开发并编译PHP扩展的方法
2011/03/18 PHP
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
2011/12/01 PHP
php中将数组转成字符串并保存到数据库中的函数代码
2013/09/29 PHP
php实现excel中rank函数功能的方法
2015/01/20 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
php+mysql开发中的经验与常识小结
2019/03/25 PHP
Laravel框架路由管理简单示例
2019/05/07 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
简单通用的JS滑动门代码
2008/12/19 Javascript
让FireFox支持innerText的实现代码
2009/12/01 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
js带点自动图片轮播幻灯片特效代码分享
2015/09/07 Javascript
JavaScript判断FileUpload控件上传文件类型
2015/09/28 Javascript
基于JS实现textarea中获取动态剩余字数的方法
2016/05/25 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
python 布尔操作实现代码
2013/03/23 Python
Python实现批量把SVG格式转成png、pdf格式的代码分享
2014/08/21 Python
python实现telnet客户端的方法
2015/04/15 Python
轻松实现TensorFlow微信跳一跳的AI
2018/01/05 Python
Python动态语言与鸭子类型详解
2019/07/01 Python
python实现共轭梯度法
2019/07/03 Python
python的pygal模块绘制反正切函数图像方法
2019/07/16 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
2019/07/18 Python
Python Selenium 设置元素等待的三种方式
2020/03/18 Python
如何用tempfile库创建python进程中的临时文件
2021/01/28 Python
英国优质鞋类专家:Robinson’s Shoes
2017/12/08 全球购物
架构师岗位职责
2013/11/18 职场文书
教师评优事迹材料
2014/01/10 职场文书
幼师自我鉴定
2014/02/01 职场文书
建筑安全生产责任书
2014/07/22 职场文书
公司承诺书格式范文
2015/04/28 职场文书
毕业论文致谢部分怎么写
2015/05/14 职场文书
Redis IP地址的绑定的实现
2021/05/08 Redis