python实现远程通过网络邮件控制计算机重启或关机


Posted in Python onFebruary 22, 2018

需求分析:

python实现一个远程通过网络邮件控制计算机重启或关机的项目。

程序流程:

python实现远程通过网络邮件控制计算机重启或关机

过程分析:

要实现本功能,首先要直到在本地如何通过Python控制计算机的重启和关机,然后需要知道如何远程发送消息给Python程序。可以在Python中执行CMD命令控制计算机的重启和关机,把发送电子邮件作为远程控制的渠道。Python程序自动登录邮箱检测邮件,当发送关机指令给这个邮箱时,则执行关机命令。

1.通过os.system()函数执行CMD命令

import os 
os.system('shutdown /s /t 1')

2.SMTP是一组用于由源地址到目的地址传送邮件的规则,可以控制信件的中转方式。SMTP属于TCP/IP协议簇,通过SMTP指定的服务器,可以把E-mail寄到收信人的服务器上。

import smtplib 
s=smtplib.SMTP('smtp.163.com') 
msg=s.ehlo() 
code=msg[0] 
print(msg) 
print("SMTP code is%d" %(code))

在发送E-mail时,客户应该以EHLO命令开始SMTP会话。如果命令成功,则服务器返回代码250。

3.POP用于使用客户端远程管理在服务器上的电子邮件。最流行的是POP3,属于TCP/IP协议簇,用于接收E-mail。

from poplib import POP3 
s=poplib.POP3(pop3.163.com) 
s.user(username) 
s.pass_(password) 
ret=s.stat()

具体实现:

控制端计算机程序:

import email 
import smtplib 
import time 
import os,sys 
import random 
 
def send_mail(): 
 try: 
 s=smtplib.SMTP('smtp.163.com')#连接服务器 
  s.login('fromusername','password')#登录发送发账号 
  msg="To:tousername@163.com\r\nFrom:fromusername@163.com\r\nSubject:shutdown \r\n\r\nshutdown\r\n"#设置邮件内容 
  s.sendmail('fromusername@163.com','tousername@163.com',msg)#发送邮件 
  s.close() 
   return 1 
 except (smtplib.SMTPException) as e: 
   print e 
   return 0 
   
if __name__=='__main__': 
   while send_mail()==0:#如果发送失败,10s后再发一次 
     time.sleep(10)

被控制端计算机程序:

#-*- encoding:utf-8 -*- 
import os,sys,string 
import poplib 
import os 
import time 
#pop3服务器地址 
host="pop3.163.com" 
#用户名 
username="***********@163.com" 
#密码 
password="******" 
 
#取第一封邮件完整信息,在返回值里,按行存储在down[1]的列表里,down[0]是返回的状态信息 
while True: 
   #创建一个POP3对象,这个时候实际上已经连接到服务器 
   p=poplib.POP3(host) 
   #向服务器发送用户名 
   p.user(username) 
   #向服务器发送密码 
   p.pass_(password) 
   #列出邮件信息,num为邮件数量,total_size为邮件总的大小 
   num,total_size=p.stat() 
   down=p.retr(num)#获取最新邮件到元组down 
   #元组down的第2个元素为邮件内容 
   mails=down[1] 
   print mails 
   for line in mails:#遍历邮件内容的每一行 
    if line.find('Subject')==0:#找到标题行 
     print line 
    if line.find('shutdown')>0:#如果标题为shutdown 
     p.dele(num)#删除该邮件,以防下次遍历时造成重复关机 
      p.quit()#关机前退出邮箱 
     print 'shutdown...' 
     os.system(' shutdown /s /t 10')#关机 
 
   p.quit()#每次轮询最后都退出邮箱 
   time.sleep(5)#每次轮询都休眠5s

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python线程指南详细介绍
Jan 05 Python
Python调用微信公众平台接口操作示例
Jul 08 Python
Python中使用多进程来实现并行处理的方法小结
Aug 09 Python
zookeeper python接口实例详解
Jan 18 Python
python opencv判断图像是否为空的实例
Jan 26 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
Mar 11 Python
python 将日期戳(五位数时间)转换为标准时间
Jul 11 Python
详解python路径拼接os.path.join()函数的用法
Oct 09 Python
Keras 加载已经训练好的模型进行预测操作
Jun 17 Python
python使用布隆过滤器的实现示例
Aug 20 Python
python 实现ping测试延迟的两种方法
Dec 10 Python
python基础之while循环语句的使用
Apr 20 Python
python实现微信发送邮件关闭电脑功能
Feb 22 #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
You might like
Laravel基础-关于引入公共文件的两种方式
2019/10/18 PHP
不错的asp中显示新闻的功能
2006/10/13 Javascript
不用写JS也能使用EXTJS视频演示
2008/12/29 Javascript
jQuery 常见学习网站与参考书
2009/11/09 Javascript
JQuery中$之选择器用法介绍
2011/04/05 Javascript
JS弹出窗口代码大全(详细整理)
2012/12/21 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
理解JavaScript的变量的入门教程
2015/07/07 Javascript
jquery+css3实现网页背景花瓣随机飘落特效
2015/08/17 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
深入理解Angularjs中的$resource服务
2016/12/31 Javascript
react-native-fs实现文件下载、文本存储的示例代码
2017/09/22 Javascript
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
vue select组件的使用与禁用实现代码
2018/04/10 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
2018/07/25 Javascript
vue cli 3.0 搭建项目的图文教程
2019/05/17 Javascript
Vue实现点击显示不同图片的效果
2019/08/10 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
2019/09/15 Python
python实现LRU热点缓存及原理
2019/10/29 Python
wxpython绘制音频效果
2019/11/18 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
2020/01/06 Python
python编写俄罗斯方块
2020/03/13 Python
波兰最大的度假胜地和城市公寓租赁运营商:Sun & Snow
2018/10/18 全球购物
中职生自我鉴定范文
2013/10/03 职场文书
初任培训自我鉴定
2013/10/07 职场文书
高中语文教学反思
2014/01/16 职场文书
2015年推普周活动方案
2015/05/06 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
庆七一活动简报
2015/07/20 职场文书
中秋节作文(五年级)之关于月亮
2019/09/11 职场文书
图解上海144收音机
2021/04/22 无线电
Vue如何清空对象
2022/03/03 Vue.js
解决xampp安装后Apache无法启动
2022/03/21 Servers