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基于twisted框架编写简单聊天室
Jan 02 Python
python中的字典操作及字典函数
Jan 03 Python
Python实现随机漫步功能
Jul 09 Python
python 动态生成变量名以及动态获取变量的变量名方法
Jan 20 Python
关于python pycharm中输出的内容不全的解决办法
Jan 10 Python
Flask模板引擎Jinja2使用实例
Apr 23 Python
Pandas将列表(List)转换为数据框(Dataframe)
Apr 24 Python
Pycharm IDE的安装和使用教程详解
Apr 30 Python
Python新手如何理解循环加载模块
May 29 Python
在python下实现word2vec词向量训练与加载实例
Jun 09 Python
python3列表删除大量重复元素remove()方法的问题详解
Jan 04 Python
OpenCV全景图像拼接的实现示例
Jun 05 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的session cookie错误
2009/08/09 PHP
简述php环境搭建与配置
2016/12/05 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
2017/03/13 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
2020/01/07 PHP
Yii框架应用组件用法实例分析
2020/05/15 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(下:动画篇)
2010/03/24 Javascript
简短几句 通俗解释javascript的闭包
2011/01/17 Javascript
javascript实用小函数使用介绍
2013/11/11 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
Bootstrap 响应式实用工具实例详解
2017/03/29 Javascript
node实现登录图片验证码的示例代码
2018/04/20 Javascript
express 项目分层实践详解
2018/12/10 Javascript
js中addEventListener()与removeEventListener()用法案例分析
2020/03/02 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
python中global与nonlocal比较
2014/11/21 Python
python 接口测试response返回数据对比的方法
2018/02/11 Python
对python3 urllib包与http包的使用详解
2018/05/10 Python
python实现一个简单的ping工具方法
2019/01/31 Python
numpy concatenate数组拼接方法示例介绍
2019/05/27 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
2019/08/30 Python
手把手教你安装Windows版本的Tensorflow
2020/03/26 Python
python删除文件、清空目录的实现方法
2020/09/23 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
Bitiba意大利:在线宠物商店
2020/10/31 全球购物
查询优化的一般准则有哪些
2015/03/08 面试题
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
情侣吵架检讨书
2014/02/05 职场文书
人事部经理岗位职责
2014/03/07 职场文书
2014年新生军训方案
2014/05/01 职场文书
青奥会口号
2014/06/12 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
党支部对转正的意见
2015/06/02 职场文书
maven依赖的version声明控制方式
2022/01/18 Java/Android