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中copy和deepcopy中的区别
Oct 23 Python
Python中enumerate()函数编写更Pythonic的循环
Mar 06 Python
python抓取网站的图片并下载到本地的方法
May 22 Python
pandas分别写入excel的不同sheet方法
Dec 11 Python
8种用Python实现线性回归的方法对比详解
Jul 10 Python
python求平均数、方差、中位数的例子
Aug 22 Python
python批量将excel内容进行翻译写入功能
Oct 10 Python
PageFactory设计模式基于python实现
Apr 14 Python
python中matplotlib实现随鼠标滑动自动标注代码
Apr 23 Python
解决pycharm安装第三方库失败的问题
May 09 Python
如何实现更换Jupyter Notebook内核Python版本
May 18 Python
PyTorch中Tensor的数据类型和运算的使用
Sep 03 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 根据IP地址控制访问的代码
2010/04/22 PHP
PHP批量查询WordPress留言者E-mail地址实现方法
2015/02/15 PHP
php实现有趣的人品测试程序实例
2015/06/08 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
2017/06/29 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
ie 处理 gif动画 的onload 事件的一个 bug
2007/04/12 Javascript
Jquery Autocomplete 结合asp.net使用要点
2010/10/29 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
2017/03/22 Javascript
jquery实现简单实用的轮播器
2017/05/23 jQuery
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
2017/12/14 Javascript
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
vue-router传参用法详解
2019/01/19 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
2019/09/21 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
2020/04/30 jQuery
Vue如何循环提取对象数组中的值
2020/11/18 Vue.js
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
python 切片和range()用法说明
2013/03/24 Python
为什么选择python编程语言入门黑客攻防 给你几个理由!
2018/02/02 Python
Python导入模块包原理及相关注意事项
2020/03/25 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
美丽的现代设计家具:2Modern
2018/07/26 全球购物
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
经销商培训邀请函
2014/01/21 职场文书
房产买卖委托公证书
2014/04/04 职场文书
计划生育证明格式范本
2014/09/12 职场文书
英文商务邀请函范文
2015/01/31 职场文书
酒店辞职书怎么写
2015/02/26 职场文书
关于清明节的演讲稿2015
2015/03/18 职场文书
2015年学校减负工作总结
2015/05/19 职场文书
创业计划书介绍
2019/04/24 职场文书
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android
python字典的元素访问实例详解
2021/07/21 Python
JavaScript 中for/of,for/in 的详细介绍
2021/11/17 Javascript