python实现微信发送邮件关闭电脑功能

 更新时间:2018年02月22日 15:14:45   作者:shhchen  
这篇文章主要介绍了python实现微信发送邮件关闭电脑功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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实现微信收红包自动化测试脚本(测试用例)

    这篇文章主要介绍了基于python实现微信收红包自动化测试脚本,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-07-07
  • Python基础Lists和tuple实例详解

    Python基础Lists和tuple实例详解

    这篇文章主要为大家介绍了Python基础Lists和tuple实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • python类别数据数字化LabelEncoder VS OneHotEncoder区别

    python类别数据数字化LabelEncoder VS OneHotEncoder区别

    这篇文章主要为大家介绍了机器学习:数据预处理之将类别数据数字化的方法LabelEncoder VS OneHotEncoder区别详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • python range实例用法分享

    python range实例用法分享

    在本篇文章里小编给大家整理了关于python range实例用法,有需要的朋友们可以学习参考下
    2020-02-02
  • Python self参数详细介绍

    Python self参数详细介绍

    事实上,Python只是规定,无论是构造方法还是实例方法,最少要包含一个参数,并没有规定该参数的具体名称。之所以将其命名为self,只是程序员之间约定俗成的一种习惯,遵守这个约定,可以使我们编写的代码具有更好的可读性
    2023-01-01
  • Python利用Django如何写restful api接口详解

    Python利用Django如何写restful api接口详解

    这篇文章主要给大家介绍了关于Python利用Django如何写restful api接口的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • python怎么提高计算速度

    python怎么提高计算速度

    在本篇文章里小编给大家分享的是一篇关于python中如何提高计算速度的技术文章,需要的朋友们可以学习下。
    2020-06-06
  • Python实现GUI计算器(附源码)

    Python实现GUI计算器(附源码)

    这篇文章主要为大家详细介绍了如何利用Python语言实现GUI计算器,可执行复杂运算,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下
    2022-11-11
  • Python利用pandas和matplotlib实现绘制双柱状图

    Python利用pandas和matplotlib实现绘制双柱状图

    在数据分析和可视化中,常用的一种图形类型是柱状图,柱状图能够清晰地展示不同分类变量的数值,并支持多组数据进行对比,本篇文章将介绍python如何使用pandas和matplotlib绘制双柱状图,需要的可以参考下
    2023-11-11
  • python numpy 显示图像阵列的实例

    python numpy 显示图像阵列的实例

    今天小编就为大家分享一篇python numpy 显示图像阵列的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07

最新评论