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使用asyncio包处理并发详解
Sep 09 Python
基于python的字节编译详解
Sep 20 Python
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
Feb 21 Python
python re模块的高级用法详解
Jun 06 Python
python利用pandas将excel文件转换为txt文件的方法
Oct 23 Python
python实现字符串加密 生成唯一固定长度字符串
Mar 22 Python
python多进程(加入进程池)操作常见案例
Oct 21 Python
简单了解Python3 bytes和str类型的区别和联系
Dec 19 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
Oct 15 Python
jupyter notebook 写代码自动补全的实现
Nov 02 Python
Python爬虫实现selenium处理iframe作用域问题
Jan 27 Python
解决numpy和torch数据类型转化的问题
May 23 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读取数据库信息的几种方法
2008/05/24 PHP
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
2009/06/08 PHP
如何设置mysql允许外网访问
2013/06/04 PHP
php中实现用数组妩媚地生成要执行的sql语句
2015/07/10 PHP
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
Javascript 面向对象编程(一) 封装
2011/08/28 Javascript
js获取指定的cookie的具体实现
2014/02/20 Javascript
JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写)
2014/10/17 Javascript
js脚本实现数据去重
2014/11/27 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
2017/03/08 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
Babel 入门教程学习笔记
2018/06/13 Javascript
Vue.use源码学习小结
2018/06/20 Javascript
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
[03:01]DOTA2英雄基础教程 露娜
2014/01/07 DOTA
Python中变量交换的例子
2014/08/25 Python
wxPython中listbox用法实例详解
2015/06/01 Python
Python利用IPython提高开发效率
2016/08/10 Python
Python列表推导式与生成器表达式用法示例
2018/02/08 Python
python把1变成01的步骤总结
2019/02/27 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
2020/02/28 Python
Python flask框架端口失效解决方案
2020/06/04 Python
Python常用模块函数代码汇总解析
2020/08/31 Python
Python Web项目Cherrypy使用方法镜像
2020/11/05 Python
医药工作者的求职信范文
2013/09/21 职场文书
电子专业推荐信范文
2013/11/18 职场文书
元旦晚会邀请函
2014/01/27 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
民主生活会对照检查材料思想汇报
2014/09/27 职场文书
读《庄子》有感:美而不自知
2019/11/06 职场文书