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备份文件的脚本
Aug 11 Python
Python中json格式数据的编码与解码方法详解
Jul 01 Python
Python编程之序列操作实例详解
Jul 22 Python
python批量替换多文件字符串问题详解
Apr 22 Python
基于python绘制科赫雪花
Jun 22 Python
python使用Matplotlib画条形图
Mar 25 Python
在python中按照特定顺序访问字典的方法详解
Dec 14 Python
python虚拟环境完美部署教程
Aug 06 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
Dec 11 Python
Python如何使用队列方式实现多线程爬虫
May 12 Python
BeautifulSoup获取指定class样式的div的实现
Dec 07 Python
整理Python中常用的conda命令操作
Jun 15 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
中国第一家无线电行
2021/03/01 无线电
PHP网站提速三大“软”招
2006/10/09 PHP
php中判断一个字符串包含另一个字符串的方法
2007/03/19 PHP
php网站来路获取代码(针对搜索引擎)
2010/06/08 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
2011/09/13 PHP
php+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
2014/05/04 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
2014/07/08 PHP
windows的文件系统机制引发的PHP路径爆破问题分析
2014/07/28 PHP
PHP中new static()与new self()的区别异同分析
2014/08/22 PHP
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
Zend Framework教程之模型Model基本规则和使用方法
2016/03/04 PHP
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
2016/06/16 Javascript
微信小程序 页面传参实例详解
2016/11/16 Javascript
vue异步加载高德地图的实现
2018/06/19 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
nodejs+express最简易的连接数据库的方法
2020/12/23 NodeJs
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
[45:06]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第二场 11.28
2020/12/02 DOTA
python获取当前计算机cpu数量的方法
2015/04/18 Python
Python解析nginx日志文件
2015/05/11 Python
Python的包管理器pip更换软件源的方法详解
2016/06/20 Python
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
keras 权重保存和权重载入方式
2020/05/21 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
2020/06/02 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
python中scipy.stats产生随机数实例讲解
2021/02/19 Python
Trip.com香港网站:Ctrip携程旗下,全球最大的网上旅游社之一
2016/08/01 全球购物
韩国11街:11STREET
2018/03/27 全球购物
Dr. Martens马汀博士法国官网:马丁靴鼻祖
2020/01/15 全球购物
外出听课学习心得体会
2016/01/15 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python
python process模块的使用简介
2021/05/14 Python
Python 解决空列表.append() 输出为None的问题
2021/05/23 Python
python缺失值的解决方法总结
2021/06/09 Python
css之clearfix的用法深入理解(必看篇)
2023/05/21 HTML / CSS