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中的进程分支fork和exec详解
Apr 11 Python
python中字符串类型json操作的注意事项
May 02 Python
利用python实现简单的邮件发送客户端示例
Dec 23 Python
Python中生成器和迭代器的区别详解
Feb 10 Python
Python中Numpy包的安装与使用方法简明教程
Jul 03 Python
OpenCV图像颜色反转算法详解
May 13 Python
python opencv minAreaRect 生成最小外接矩形的方法
Jul 01 Python
python游戏开发的五个案例分享
Mar 09 Python
Python numpy多维数组实现原理详解
Mar 10 Python
django rest framework 过滤时间操作
Jul 12 Python
python 中 .py文件 转 .pyd文件的操作
Mar 04 Python
python实现学员管理系统(面向对象版)
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字符串处理的10个简单方法
2010/06/30 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
破除网页鼠标右键被禁用的绝招大全
2006/12/27 Javascript
JavaScript国旗变换效果代码
2008/08/13 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
图片img的src不变让浏览器重新加载实现方法
2013/03/29 Javascript
js格式化金额可选是否带千分位以及保留精度
2014/01/28 Javascript
js处理自己不能定义二维数组的方法详解
2014/03/03 Javascript
javascript中兼容主流浏览器的动态生成iframe方法
2014/05/05 Javascript
原生javascript实现拖动元素示例代码
2014/09/01 Javascript
谈一谈javascript闭包
2016/01/28 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
jQuery 全选 全部选 反选 实现代码
2016/08/17 Javascript
jQuery实现立体式数字动态增加(animate方法)
2016/12/21 Javascript
全面解析vue中的数据双向绑定
2017/05/10 Javascript
Vue单文件组件的如何使用方式介绍
2017/07/28 Javascript
Vue+Element使用富文本编辑器的示例代码
2017/08/14 Javascript
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
微信小程序实现的一键拨号功能示例
2019/04/24 Javascript
Python中的列表生成式与生成器学习教程
2016/03/13 Python
Python利用operator模块实现对象的多级排序详解
2017/05/09 Python
浅析使用Python操作文件
2017/07/31 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
2018/01/09 Python
Django添加feeds功能的示例
2018/08/07 Python
python turtle库画一个方格和圆实例
2019/06/27 Python
Pytorch 实现focal_loss 多类别和二分类示例
2020/01/14 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
纯CSS3实现圆角效果(含IE兼容解决方法)
2014/05/07 HTML / CSS
使用HTML5的Canvas绘制曲线的简单方法
2015/09/08 HTML / CSS
保安员岗位职责
2013/11/17 职场文书
八项规定整改方案
2014/02/21 职场文书
委托书样本
2014/04/02 职场文书
学习十八大的心得体会
2014/09/12 职场文书
创业计划书之美容店
2019/09/16 职场文书
MySQL infobright的安装步骤
2021/04/07 MySQL
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python