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网络编程学习笔记(三):socket网络服务器
Jun 09 Python
完美解决python遍历删除字典里值为空的元素报错问题
Sep 11 Python
Java编程迭代地删除文件夹及其下的所有文件实例
Feb 10 Python
Python下使用Scrapy爬取网页内容的实例
May 21 Python
opencv转换颜色空间更改图片背景
Aug 20 Python
tensorflow对图像进行拼接的例子
Feb 05 Python
Pycharm配置PyQt5环境的教程
Apr 02 Python
Python QTimer实现多线程及QSS应用过程解析
Jul 11 Python
python logging 重复写日志问题解决办法详解
Aug 04 Python
python 实时调取摄像头的示例代码
Nov 25 Python
Pycharm Plugins加载失败问题解决方案
Nov 28 Python
python flappy bird小游戏分步实现流程
Feb 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
初识php MVC
2014/09/10 PHP
php传值方式和ajax的验证功能
2017/03/27 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
js中巧用cssText属性批量操作样式
2011/03/13 Javascript
jQuery把表单元素变为json对象
2013/11/06 Javascript
文本域光标操作的jQuery扩展分享
2014/03/10 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
2014/03/16 Javascript
JavaScript实现防止网页被嵌入Frame框架的代码分享
2014/12/29 Javascript
JavaScript学习笔记之JS函数
2015/01/22 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
2015/09/17 Javascript
JS面向对象编程详解
2016/03/06 Javascript
一个极为简单的requirejs实现方法
2016/10/20 Javascript
jQuery实现拖动剪裁图片作为头像
2016/12/28 Javascript
vue 指定组件缓存实例详解
2018/04/01 Javascript
nodejs多版本管理总结
2018/04/03 NodeJs
浅谈针对Vue相同路由不同参数的刷新问题
2018/09/29 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
2019/01/08 Javascript
微信小程序学习笔记之函数定义、页面渲染图文详解
2019/03/28 Javascript
vue路由守卫,限制前端页面访问权限的例子
2019/11/11 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
vue如何实现动态加载脚本
2020/02/05 Javascript
在Vue.js中使用TypeScript的方法
2020/03/19 Javascript
[10:53]2018DOTA2国际邀请赛寻真——EG
2018/08/11 DOTA
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
python获得文件创建时间和修改时间的方法
2015/06/30 Python
python 默认参数问题的陷阱
2016/02/29 Python
Python2.x利用commands模块执行Linux shell命令
2016/03/11 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
Python3 用什么IDE开发工具比较好
2020/11/28 Python
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
凯普林包包西班牙官网:Kipling西班牙
2019/04/12 全球购物
PatPat香港:婴童服饰和亲子全家装在线购物
2020/09/27 全球购物
使用Vue.js和MJML创建响应式电子邮件
2021/03/23 Vue.js
六一儿童节标语
2014/10/08 职场文书
三年级上册科学教学计划
2015/01/21 职场文书
Java tomcat手动配置servlet详解
2021/11/27 Java/Android