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实现文本文件合并
Dec 29 Python
Python2.x与Python3.x的区别
Jan 14 Python
Python实现动态图解析、合成与倒放
Jan 18 Python
儿童python练习实例
May 27 Python
Python3多进程 multiprocessing 模块实例详解
Jun 11 Python
Python使用分布式锁的代码演示示例
Jul 30 Python
python实现录音小程序
Oct 26 Python
python tkinter图形界面代码统计工具(更新)
Sep 18 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
Sep 23 Python
python适合做数据挖掘吗
Jun 16 Python
浅谈Python 参数与变量
Jun 20 Python
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
Feb 16 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 和 COM
2006/10/09 PHP
社区(php&&mysql)二
2006/10/09 PHP
PHP下操作Linux消息队列完成进程间通信的方法
2010/07/24 PHP
如何用phpmyadmin设置mysql数据库用户的权限
2012/01/09 PHP
php中常见的sql攻击正则表达式汇总
2014/11/06 PHP
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
javascript中的几个运算符
2007/06/29 Javascript
js操作ajax返回的json的注意问题!
2010/02/23 Javascript
cookie的secure属性详解
2015/04/08 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
2016/06/17 Javascript
Mvc提交表单的四种方法全程详解
2016/08/10 Javascript
Node.js实现兼容IE789的文件上传进度条
2016/09/02 Javascript
Nodejs模块载入运行原理
2018/02/23 NodeJs
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
vue里input根据value改变背景色的实例
2018/09/29 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
Python实现读取目录所有文件的文件名并保存到txt文件代码
2014/11/22 Python
python如何去除字符串中不想要的字符
2020/07/05 Python
python pandas 对时间序列文件处理的实例
2018/06/22 Python
python实现汉诺塔算法
2021/03/01 Python
python实现人脸签到系统
2020/04/13 Python
使用CSS3制作版头动画效果
2020/12/24 HTML / CSS
整理的15个非常有用的 HTML5 开发教程和速查手册
2011/10/18 HTML / CSS
日本卡普空电视游戏软件公司官方购物网站:e-CAPCOM
2018/07/17 全球购物
俄罗斯护发和专业化妆品购物网站:Hihair
2019/09/28 全球购物
经贸日语专业个人求职信范文
2013/12/28 职场文书
毕业生护理专业个人求职信范文
2014/01/04 职场文书
教师评优事迹材料
2014/01/10 职场文书
捐款倡议书格式范文
2014/05/14 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
委托书的样本
2015/01/28 职场文书
企业战略合作意向书
2015/05/08 职场文书
小学毕业感言200字
2015/07/30 职场文书
mybatis使用oracle进行添加数据的方法
2021/04/27 Oracle
pytest实现多进程与多线程运行超好用的插件
2022/07/15 Python