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 通过pip安装Django详细介绍
Apr 28 Python
Python 自动化表单提交实例代码
Jun 08 Python
python监控键盘输入实例代码
Feb 09 Python
Python单元测试简单示例
Jul 03 Python
Python将文本去空格并保存到txt文件中的实例
Jul 24 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
Feb 13 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
Jun 19 Python
pyqt5 实现多窗口跳转的方法
Jun 19 Python
django中使用POST方法获取POST数据
Aug 20 Python
深入了解NumPy 高级索引
Jul 24 Python
pymysql模块使用简介与示例
Nov 17 Python
python中pandas.read_csv()函数的深入讲解
Mar 29 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/12/11 PHP
解析smarty模板中类似for的功能实现
2013/06/18 PHP
php网站地图生成类示例
2014/01/13 PHP
PHP实现的购物车类实例
2015/06/17 PHP
Yii操作数据库实现动态获取表名的方法
2016/03/29 PHP
php array_map()函数实例用法
2021/03/03 PHP
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
javascript数组操作方法小结和3个属性详细介绍
2014/07/05 Javascript
Google官方支持的NodeJS访问API,提供后台登录授权
2014/07/29 NodeJs
JavaScript实现多栏目切换效果
2016/12/12 Javascript
JS实现图片放大缩小的方法
2017/02/15 Javascript
详解html-webpack-plugin用法全解
2018/01/22 Javascript
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
用VueJS写一个Chrome浏览器插件的实现方法
2019/02/27 Javascript
[01:06] DOTA2英雄背景故事第三期之秩序法则光之守卫
2020/07/07 DOTA
[00:59]DOTA2背景故事第二期之四大基本法则
2020/07/07 DOTA
[01:22:29]真视界:2019年国际邀请赛总决赛
2020/01/29 DOTA
Python 爬虫模拟登陆知乎
2016/09/23 Python
Python中字符串的修改及传参详解
2016/11/30 Python
Django 中使用流响应处理视频的方法
2018/07/20 Python
用scikit-learn和pandas学习线性回归的方法
2019/06/21 Python
用Python配平化学方程式的方法
2019/07/20 Python
python 调试冷知识(小结)
2019/11/11 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
Python CategoricalDtype自定义排序实现原理解析
2020/09/11 Python
Django实现文章详情页面跳转代码实例
2020/09/16 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
如何利用XMLHTTP检测URL及探测服务器信息
2013/11/10 面试题
机械专业毕业生推荐信范文
2013/11/25 职场文书
学习党课思想汇报
2013/12/29 职场文书
办公室文员工作自我鉴定
2014/09/19 职场文书
顶岗实习计划书
2015/01/16 职场文书
高中地理教学反思
2016/02/19 职场文书
通过shell脚本对mysql的增删改查及my.cnf的配置
2021/07/07 MySQL
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js