python通过微信发送邮件实现电脑关机


Posted in Python onJune 20, 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脚本实现格式化css文件
Apr 08 Python
讲解Python中的标识运算符
May 14 Python
pygame游戏之旅 添加碰撞效果的方法
Nov 20 Python
3分钟学会一个Python小技巧
Nov 23 Python
利用python实现在微信群刷屏的方法
Feb 21 Python
详解django中url路由配置及渲染方式
Feb 25 Python
Django文件存储 自己定制存储系统解析
Aug 02 Python
Python matplotlib以日期为x轴作图代码实例
Nov 22 Python
python爬虫模拟浏览器的两种方法实例分析
Dec 09 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
Jun 03 Python
python中常见错误及解决方法
Jun 21 Python
基于Python 的语音重采样函数解析
Jul 06 Python
python定时关机小脚本
Jun 20 #Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
Jun 20 #Python
python实现电脑自动关机
Jun 20 #Python
python3将视频流保存为本地视频文件
Jun 20 #Python
Python操作MySQL数据库的方法
Jun 20 #Python
python实现抖音视频批量下载
Jun 20 #Python
Python 类的特殊成员解析
Jun 20 #Python
You might like
php实现网站插件机制的方法
2009/11/10 PHP
php 传值赋值与引用赋值的区别
2010/12/29 PHP
利用php获取服务器时间的实现代码
2013/06/07 PHP
php自动加载机制的深入分析
2013/06/08 PHP
php将mysql数据库整库导出生成sql文件的具体实现
2014/01/08 PHP
PHP实现数组递归转义的方法
2014/08/28 PHP
js表数据排序 sort table data
2009/02/18 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
JavaScript字符串插入、删除、替换函数使用示例
2013/07/25 Javascript
js实现显示当前状态的导航效果代码
2015/08/28 Javascript
jqGrid用法汇总(全经典)
2016/06/28 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
Vuex的基本概念、项目搭建以及入坑点
2018/11/04 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
原生js实现五子棋游戏
2020/05/28 Javascript
vue2.* element tabs tab-pane 动态加载组件操作
2020/07/19 Javascript
python队列queue模块详解
2018/04/27 Python
Django 跨域请求处理的示例代码
2018/05/02 Python
python中使用psutil查看内存占用的情况
2018/06/11 Python
Python如何筛选序列中的元素的方法实现
2019/07/15 Python
django中使用Celery 布式任务队列过程详解
2019/07/29 Python
python计算导数并绘图的实例
2020/02/29 Python
pycharm安装及如何导入numpy
2020/04/03 Python
如何利用python之wxpy模块玩转微信
2020/08/17 Python
python制作抽奖程序代码详解
2021/01/15 Python
英国性感内衣和睡衣品牌:Bluebella
2018/01/26 全球购物
英国复古皮包品牌:Beara Beara
2018/07/18 全球购物
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
项目资料员岗位职责
2013/12/10 职场文书
营销总监岗位职责范本
2014/02/26 职场文书
HR求职自荐信范文
2014/06/21 职场文书
护士长2014年度工作总结
2014/11/11 职场文书
好好学习保证书
2015/02/26 职场文书
Python Parser的用法
2021/05/12 Python