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解决mysql视图导入导出依赖的问题
Dec 17 Python
Python实现JSON反序列化类对象的示例
Jan 31 Python
python实现SOM算法
Feb 23 Python
在Python中pandas.DataFrame重置索引名称的实例
Nov 06 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
Jun 17 Python
Django中reverse反转并且传递参数的方法
Aug 06 Python
详解python中的模块及包导入
Aug 30 Python
Python While循环语句实例演示及原理解析
Jan 03 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
Apr 03 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
May 11 Python
python 装饰器的实际作用有哪些
Sep 07 Python
python实现简单的井字棋游戏(gui界面)
Jan 22 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
PHP判断FORM表单或URL参数来的数据是否为整数的方法
2016/03/25 PHP
XHProf报告字段含义的解析
2016/05/17 PHP
PHP如何实现订单的延时处理详解
2017/12/30 PHP
javascript实现 在光标处插入指定内容
2007/05/25 Javascript
JQuery扩展插件Validate—6 radio、checkbox、select的验证
2011/09/05 Javascript
JQuery在页面中添加和除移DOM示例代码
2013/06/24 Javascript
js父页面与子页面不同时显示的方法
2014/10/16 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
jquery模拟实现鼠标指针停止运动事件
2016/01/12 Javascript
js实现可控制左右方向的无缝滚动效果
2016/05/29 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
JavaScript中Array方法你该知道的正确打开方法
2018/09/11 Javascript
js中let能否完全替代IIFE
2019/06/15 Javascript
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
Vue 样式切换及三元判断样式关联操作
2020/08/09 Javascript
Python中列表元素转为数字的方法分析
2016/06/14 Python
python简易远程控制单线程版
2018/06/20 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
python批量创建指定名称的文件夹
2019/03/21 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
Python将QQ聊天记录生成词云的示例代码
2021/02/10 Python
使用css如何制作时间ICON方法实践
2012/11/12 HTML / CSS
5分钟实现Canvas鼠标跟随动画背景
2019/11/18 HTML / CSS
SmartBuyGlasses美国官网:太阳眼镜和眼镜
2017/08/20 全球购物
颇特女士:NET-A-PORTER(直邮中国)
2020/07/11 全球购物
资金主管岗位职责范本
2014/03/04 职场文书
公司授权委托书
2014/04/04 职场文书
冬季施工防火方案
2014/05/17 职场文书
装修活动策划方案
2014/08/27 职场文书
贫困证明模板(3篇)
2014/09/16 职场文书
2014大四本科生自我鉴定总结
2014/10/04 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
入党介绍人意见怎么写
2015/06/03 职场文书
教师反邪教心得体会
2016/01/15 职场文书
python playwrigh框架入门安装使用
2022/07/23 Python