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列表(list)、字典(dict)、字符串(string)基本操作小结
Nov 28 Python
Python Paramiko模块的安装与使用详解
Nov 18 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
Jan 26 Python
使用Python AIML搭建聊天机器人的方法示例
Jul 09 Python
详解python中的index函数用法
Aug 06 Python
Python 使用元类type创建类对象常见应用详解
Oct 17 Python
使用 Python 清理收藏夹里已失效的网站
Dec 03 Python
Python实现微信好友的数据分析
Dec 16 Python
TensorFlow2.0:张量的合并与分割实例
Jan 19 Python
python numpy--数组的组合和分割实例
Feb 24 Python
Python hashlib模块的使用示例
Oct 09 Python
基于Python实现粒子滤波效果
Dec 01 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中实现图片的锐化
2006/10/09 PHP
用PHP调用数据库的存贮过程!
2006/10/09 PHP
destoon会员注册提示“数据校验失败(2)”解决方法
2014/06/21 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
PHP结合Jquery和ajax实现瀑布流特效
2016/01/07 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
2006/12/22 Javascript
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
js 处理URL实用技巧
2010/11/23 Javascript
js隐式全局变量造成的bug示例代码
2014/04/22 Javascript
js实现类似MSN提示的页面效果代码分享
2015/08/24 Javascript
基于JS快速实现导航下拉菜单动画效果附源码下载
2016/10/27 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
浅谈vue项目打包优化策略
2018/09/29 Javascript
Node.js之删除文件夹(含递归删除)代码实例
2019/09/09 Javascript
python中MySQLdb模块用法实例
2014/11/10 Python
python正常时间和unix时间戳相互转换的方法
2015/04/23 Python
Python黑帽编程 3.4 跨越VLAN详解
2016/09/28 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
django解决跨域请求的问题
2018/11/11 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
Pycharm新建模板默认添加个人信息的实例
2019/07/15 Python
利用matplotlib实现根据实时数据动态更新图形
2019/12/13 Python
python基于plotly实现画饼状图代码实例
2019/12/16 Python
python 通过 pybind11 使用Eigen加速代码的步骤
2020/12/07 Python
7款设计巧妙的css3飘带状3D立体效果的导航菜单和表单窗口
2013/02/04 HTML / CSS
Noon埃及:埃及在线购物
2019/11/26 全球购物
关键字throw与throws的用法差异
2016/11/22 面试题
北体毕业生求职信
2014/02/28 职场文书
《夕阳真美》教学反思
2014/04/27 职场文书
责任心演讲稿
2014/05/14 职场文书
批评与自我批评范文
2014/10/15 职场文书
作文评语怎么写
2014/12/25 职场文书
顶岗实习协议书
2015/01/29 职场文书
2015年手术室工作总结
2015/05/11 职场文书
活动简报范文
2015/07/22 职场文书