import poplib
import sys
import smtplib
from email.mime.text import MIMEText
import os
from email.header import decode_header
import email
import time
def check_email():
try:
p = poplib.POP3('pop.163.com')
p.user('*****@163.com')
p.pass_('*******')
ret = p.stat()
except:
print('Login failed!')
sys.exit(1)
str = p.top(ret[0], 0)
strlist = []
for x in str[1]:
try:
strlist.append(x.decode())
except:
try:
strlist.append(x.decode('gbk'))
except:
strlist.append((x.decode('big5')))
mm = email.message_from_string('\n'.join(strlist))
sub = decode_header(mm['subject'])
if sub[0][1]:
submsg = sub[0][0].decode(sub[0][1])
else:
submsg = sub[0][0]
if submsg.strip() == '关机':
return 0
elif submsg.strip() == '重新启动':
return 1
p.quit()
def send_email():
user = '*******@qq.com'
pwd = '**********'
to = ['*****@163.com', '*****@139.com'] #139邮件会有短信提醒,让我知道是否成功
msg = MIMEText('')
msg['Subject'] = '已收到命令!'
msg['From'] = user
msg['To'] = ','.join(to)
s = smtplib.SMTP('smtp.qq.com')
s.login(user, pwd)
s.sendmail(user, to, msg.as_string())
s.close() if __name__ == '__main__':
while True:
time.sleep(20)
if check_email() == 0:
send_email()
os.system('shutdown -s -t 1') #关机
break
if check_email() == 1:
send_email()
os.system('shutdown -r') #重新启动
break
測试成功

其他命令自行加入,这里仅仅作 关机和重新启动. 脑洞大开!

转载请注明作者与出处:http://blog.csdn.net/u013511642   王小涛_同學

Python3.4 远程操控电脑(开关机)的更多相关文章

  1. windows如何查看电脑开关机记录

    如何查看电脑开关机记录 (一)如果你只是想查看一下,从昨天关机到今天开机之间有没有人使用我的计算机,在“开始”菜单的运行”中输入“eventvwr.msc”,或者是按下"开始菜单" ...

  2. Python 初级项目:远程操控电脑(三)-极客学院

    http://www.jikexueyuan.com/course/2376_1.html

  3. 简述HP iLO中的几种开关机选项

    ILO是intergrated Light-Out的缩写,是HP的远程管理功能,它可以实现远程开关机.远程安装.远程连接等功能. 笔者刚接触HP服务器时对四个关于开关机的选项非常困惑,不明其中区别.此 ...

  4. 手机控制电脑定时关机,重启WiFi

    需求 晚上上床,电脑开着WiFi让手机上网.要么上床之前就给电脑设置定时关机:要么就电脑开通宵:要么就待会下来关电脑.这3种情况都非常不好,要么麻烦,要么浪费. 最无奈的是电脑刚开好WiFi,上床后才 ...

  5. [教程] 【终极开关机加速!!】手把手教你加速Mac的开关机速度。(经验证适用10.10!)

    转自:http://bbs.feng.com/read-htm-tid-7811885.html   [声明]如果锋友的机器开机速度已经很快了,譬如机械硬盘40秒左右,SSD10秒左右,那么就不要折腾 ...

  6. win7不正常开关机,系统恢复选项

    会win7不正常开关机后,会默认进入“系统回复选项”. 无人值守的机器远程会无法连接,默认会进入此界面. 解决方法: 到现场,鼠标.键盘.显示器, 开机后选择正常启动, 在命令行模式输入以下命令bcd ...

  7. win10中查看开关机时间及查看admin的RID的方法

    原文链接: https://www.toutiao.com/i6772133439593251339/ 打开系统的注册表 键盘输入win+r组合键出现运行窗口命令 输入regedit 按回车键,进入注 ...

  8. Azure Automation (3) 定期将某个Azure订阅下的所有虚拟机开关机

    <Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China. 在笔者之前的文章中,我们介绍了使用Azure Automation ...

  9. Azure Automation (4) 按照Azure虚拟机的机器名,设置开关机

    <Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China服务. 在有的时候,我们不需要将所有的虚拟机进行开关机. 本文介绍的脚 ...

随机推荐

  1. iOS - UITableView 多选功能实现

    :自定义Cell中的代码 #import <UIKit/UIKit.h> @interface TestCell : UITableViewCell @property(nonatomic ...

  2. Java——Spring注解

    Spring常用注解使用注解来构造IoC容器用注解来向Spring容器注册Bean.需要在applicationContext.xml中注册<context:component-scan bas ...

  3. 如何让win32 c++窗口不出现在任务栏

    把窗口作为某一个窗口的子窗口,然后设置WS_POPUP就可以了.使用CreateWindow时的第三个参数设置为WS_CHILD|WS_POPUP.

  4. CSS——background综合运用

    搜索栏图标: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> < ...

  5. [Windows Server 2003] 还原SQL Server数据库

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:SQL Ser ...

  6. Linux 一些小知识点汇总(持续更新....)

    一.符号 1.$@:传递的参数. 2.$# :传递参数的数量. 3.$?:指上一次执行命令后的返回值.一般0表示运行成功. 补充:$?只表示上一个命令执行后的退出状态,当命令执行后,又执行了其他命令, ...

  7. DAMA

    无论是小数据时代还是大数据时代,数据治理都是个非常重要的工作,数据质量问题是个非常普遍的问题.对于传统企业来说,核心业务还是流程驱动的,需要而且有条件把数据做准确,这就需要在数据管理上面下功夫. 介绍 ...

  8. 扩增子图表解读4曼哈顿图:差异分类级别Taxonomy

    曼哈顿图 Manhattan Plot 曼哈顿图本质上是一个散点图,用于显示大量非零大范围波动数值,最早应用于全基因组关联分析(GWAS)研究展示高度相关位点.它得名源于样式与曼哈顿天际线相似(如下图 ...

  9. Origin C调用NAG库

    NAG(Numerical Algorithms Group, www.nag.com)库是一个无与伦比的算法库,它提供的算法可靠.轻便.严谨,覆盖了数学与统计方方面面.最大的缺点就是:它是一个收费的 ...

  10. 关联API

    在类或者函数定义之前加上关联代码 API_XXX