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


Posted in Python onFebruary 22, 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的Django框架完成视频处理任务的教程
Apr 02 Python
python通过加号运算符操作列表的方法
Jul 28 Python
pandas 实现将重复表格去重,并重新转换为表格的方法
Apr 18 Python
Python获取指定字符前面的所有字符方法
May 02 Python
python使用zip将list转为json的方法
Dec 31 Python
python石头剪刀布小游戏(三局两胜制)
Jan 20 Python
自学python的建议和周期预算
Jan 30 Python
python调用虹软2.0第三版的具体使用
Feb 22 Python
Python3中的最大整数和最大浮点数实例
Jul 09 Python
Python 中判断列表是否为空的方法
Nov 24 Python
Numpy与Pytorch 矩阵操作方式
Dec 27 Python
python爬虫beautifulsoup解析html方法
Dec 07 Python
python使用itchat实现手机控制电脑
Feb 22 #Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 #Python
Python3.4实现远程控制电脑开关机
Feb 22 #Python
python实现微信远程控制电脑
Feb 22 #Python
Python标准库笔记struct模块的使用
Feb 22 #Python
python实现手机通讯录搜索功能
Feb 22 #Python
Python实现通讯录功能
Feb 22 #Python
You might like
PHP新手上路(八)
2006/10/09 PHP
php curl的深入解析
2013/06/02 PHP
shell脚本作为保证PHP脚本不挂掉的守护进程实例分享
2013/07/15 PHP
php正则匹配html中带class的div并选取其中内容的方法
2015/01/13 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
PHP连接数据库实现注册页面的增删改查操作
2016/03/27 PHP
thinkphp集成前端脚手架Vue-cli的教程图解
2018/08/30 PHP
JavaScript 应用技巧集合[推荐]
2009/08/30 Javascript
JavaScript 事件记录使用说明
2009/10/20 Javascript
JQuery循环滚动图片代码
2011/12/08 Javascript
jQuery使用append在html元素后同时添加多项内容的方法
2015/03/26 Javascript
JS公共小方法之判断对象是否为domElement的实例
2016/11/25 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
JavaScript实现快速排序的方法分析
2018/01/10 Javascript
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
vue离开当前页面触发的函数代码
2020/09/01 Javascript
Javascript异步流程控制之串行执行详解
2020/09/27 Javascript
[08:53]DOTA2每周TOP10 精彩击杀集锦vol.9
2014/06/26 DOTA
Python3中多线程编程的队列运作示例
2015/04/16 Python
在Mac OS上使用mod_wsgi连接Python与Apache服务器
2015/12/24 Python
python模拟Django框架实例
2016/05/17 Python
使用Python进行目录的对比方法
2018/11/01 Python
python使用knn实现特征向量分类
2018/12/26 Python
基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
2016/12/20 HTML / CSS
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
金融专业个人求职信
2013/09/22 职场文书
化工工艺专业求职信
2013/09/22 职场文书
《谁的本领大》教后反思
2014/04/25 职场文书
学校查摆问题整改措施
2014/09/28 职场文书
家庭困难证明
2014/10/12 职场文书
公司财务经理岗位职责
2015/04/08 职场文书
谢师宴家长答谢词
2015/09/30 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书
Ajax实现异步加载数据
2021/11/17 Javascript
Python实现归一化算法详情
2022/03/18 Python