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之有容乃大的list(4)
Sep 28 Python
python利用不到一百行代码实现一个小siri
Mar 02 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
May 13 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
Jun 17 Python
Python调用百度根据经纬度查询地址的示例代码
Jul 07 Python
python按行读取文件并找出其中指定字符串
Aug 08 Python
Python传递参数的多种方式(小结)
Sep 18 Python
Python实现图片批量加入水印代码实例
Nov 30 Python
pandas 中对特征进行硬编码和onehot编码的实现
Dec 20 Python
python 爬取疫情数据的源码
Feb 09 Python
python中用ctypes模拟点击的实例讲解
Nov 26 Python
python unichr函数知识点总结
Dec 16 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
用cookies来跟踪识别用户
2006/10/09 PHP
Laravel 5框架学习之数据库迁移(Migrations)
2015/04/08 PHP
php根据生日计算年龄的方法
2015/07/13 PHP
使用PHP生成图片的缩略图的方法
2015/08/18 PHP
PHP二进制与字符串之间的相互转换教程
2016/10/14 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
2016/10/18 PHP
php实现当前页面点击下载文件的实例代码
2016/11/16 PHP
探究Laravel使用env函数读取环境变量为null的问题
2016/12/06 PHP
理解javascript定时器中的单线程
2016/02/23 Javascript
jquery简单插件制作(fn.extend)完整实例
2016/05/24 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
angularjs实现文字上下无缝滚动特效代码
2016/09/04 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
2016/12/20 Javascript
vue实现点击追加选中样式效果
2019/11/01 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
2020/11/03 Javascript
Python ftp上传文件
2016/02/13 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
2018/03/19 Python
pandas系列之DataFrame 行列数据筛选实例
2018/04/12 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
python 有效的括号的实现代码示例
2019/11/11 Python
使用python绘制cdf的多种实现方法
2020/02/25 Python
如何把python项目部署到linux服务器
2020/08/26 Python
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
如何写一份好的自荐信
2014/01/02 职场文书
写演讲稿所需要注意的4个条件
2014/01/09 职场文书
企业精神口号
2014/06/11 职场文书
技术负责人岗位职责
2015/02/10 职场文书
语文教师求职信范文
2015/03/20 职场文书
学校重阳节活动总结
2015/03/24 职场文书
小学教师党员承诺书
2015/04/27 职场文书
被告代理词范文
2015/05/25 职场文书
redis配置文件中常用配置详解
2021/04/14 Redis
Python基础教程,Python入门教程(超详细)
2021/06/24 Python
Redis实战之Lettuce的使用技巧详解
2022/12/24 Redis