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内置函数bin() oct()等实现进制转换
Dec 30 Python
Python实现mysql数据库更新表数据接口的功能
Nov 19 Python
python中实现数组和列表读取一列的方法
Apr 03 Python
Python利用pandas计算多个CSV文件数据值的实例
Apr 19 Python
django如何连接已存在数据的数据库
Aug 14 Python
Python判断以什么结尾以什么开头的实例
Oct 27 Python
Python+OpenCV感兴趣区域ROI提取方法
Jan 10 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
Jun 10 Python
Python 堆叠柱状图绘制方法
Jul 29 Python
kafka监控获取指定topic的消息总量示例
Dec 23 Python
pytorch获取模型某一层参数名及参数值方式
Dec 30 Python
virtualenv介绍及简明教程
Jun 23 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/03 冲泡冲煮
PHP无敌近乎加密方式!
2010/07/17 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
详解php魔术方法(Magic methods)的使用方法
2016/02/14 PHP
Javascript !!的作用
2008/12/04 Javascript
js 事件处理函数间的Event物件是否全等
2011/04/08 Javascript
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
Javascript核心读书有感之类型、值和变量
2015/02/11 Javascript
老生常谈Javascript中的原型和this指针
2016/10/09 Javascript
Bootstrap栅格系统学习笔记
2016/11/25 Javascript
Javascript自定义事件详解
2017/01/13 Javascript
完美实现js选项卡切换效果(二)
2017/03/08 Javascript
微信通过页面(H5)直接打开本地app的解决方法
2017/09/09 Javascript
Vue加载json文件的方法简单示例
2019/01/28 Javascript
JS回调函数 callback的理解与使用案例分析
2019/09/09 Javascript
three.js 将图片马赛克化的示例代码
2020/07/31 Javascript
vue中template的三种写法示例
2020/10/21 Javascript
vue实现lodop打印功能的示例
2020/11/11 Javascript
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
[04:01]2014DOTA2国际邀请赛 TITAN告别Ohaiyo期望明年再战
2014/07/15 DOTA
python求pi的方法
2014/10/08 Python
Python 调用Java实例详解
2017/06/02 Python
pandas中去除指定字符的实例
2018/05/18 Python
Python 调用 zabbix api的方法示例
2019/01/06 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
2020/06/30 Python
recorder.js 基于Html5录音功能的实现
2020/05/26 HTML / CSS
缅甸网上购物:Shop.com.mm
2017/12/05 全球购物
悬挂训练绳:TRX
2017/12/14 全球购物
韩国11街:11STREET
2018/03/27 全球购物
物流专业大学的自我评价
2014/01/11 职场文书
电气自动化个人求职信范文
2014/02/03 职场文书
《自选商场》教学反思
2014/02/14 职场文书
企业演讲稿范文大全
2014/05/20 职场文书
法制宣传口号
2014/06/16 职场文书
教师节活动总结
2014/08/29 职场文书