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访问纯真IP数据库脚本分享
Jun 29 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
Jan 24 Python
基于Django filter中用contains和icontains的区别(详解)
Dec 12 Python
Python Web程序部署到Ubuntu服务器上的方法
Feb 22 Python
解决PySide+Python子线程更新UI线程的问题
Jan 11 Python
python占位符输入方式实例
May 27 Python
ubuntu 16.04下python版本切换的方法
Jun 14 Python
python ftplib模块使用代码实例
Dec 31 Python
logging level级别介绍
Feb 21 Python
Keras中的两种模型:Sequential和Model用法
Jun 27 Python
用python对excel查重
Dec 07 Python
matplotlib grid()设置网格线外观的实现
Feb 22 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
IIS6.0 开启Gzip方法及PHP Gzip函数分享
2014/06/08 PHP
php  单例模式详细介绍及实现源码
2016/11/05 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
2019/10/25 PHP
jQuery源码分析-01总体架构分析
2011/11/14 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
JavaScript计划任务后台运行的方法
2015/12/18 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
vue.js实现插入数值与表达式的方法分析
2018/07/06 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
详解js模板引擎art template数组渲染的方法
2018/10/09 Javascript
js指定日期增加指定月份的实现方法
2018/12/19 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
2019/04/17 Javascript
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
解决antd Form 表单校验方法无响应的问题
2020/10/27 Javascript
[50:15]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python格式化css文件的方法
2015/03/10 Python
Python中的hypot()方法使用简介
2015/05/18 Python
Python中模块string.py详解
2017/03/12 Python
Python Xml文件添加字节属性的方法
2018/03/31 Python
在pandas中一次性删除dataframe的多个列方法
2018/04/10 Python
python使用Turtle库绘制动态钟表
2018/11/19 Python
Django中自定义模型管理器(Manager)及方法
2019/09/23 Python
如何理解Python中的变量
2020/06/01 Python
详解python方法之绑定方法与非绑定方法
2020/08/17 Python
无惧面试,带你搞懂python 装饰器
2020/08/17 Python
迪梵英国官方网站:Darphin英国
2017/12/06 全球购物
乌克兰鞋类购物网站:Eobuv.com.ua
2020/11/28 全球购物
Linux开机引导的步骤是什么
2014/02/26 面试题
与UNIX有关的几个名词
2015/09/17 面试题
节能环保口号
2014/06/12 职场文书
2014年政府采购工作总结
2014/12/09 职场文书