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和php通信乱码问题解决方法
Apr 15 Python
python分析apache访问日志脚本分享
Feb 26 Python
九步学会Python装饰器
May 09 Python
Python中的字符串操作和编码Unicode详解
Jan 18 Python
Python实现删除列表中满足一定条件的元素示例
Jun 12 Python
MAC中PyCharm设置python3解释器
Dec 15 Python
基于DATAFRAME中元素的读取与修改方法
Jun 08 Python
TensorFlow实现从txt文件读取数据
Feb 05 Python
JAVA及PYTHON质数计算代码对比解析
Jun 10 Python
如何基于matlab相机标定导出xml文件
Nov 02 Python
Python爬虫之Selenium鼠标事件的实现
Dec 04 Python
python实现过滤敏感词
May 08 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
PHPlet在Windows下的安装
2006/10/09 PHP
最简单的PHP程序--记数器
2006/10/09 PHP
php下连接mssql2005的代码
2011/01/17 PHP
非常重要的php正则表达式详解
2016/01/04 PHP
[原创]php简单隔行变色功能实现代码
2016/07/09 PHP
如何用PHP做到页面注册审核
2017/03/02 PHP
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
用jquery实现的一个超级简单的下拉菜单
2014/05/18 Javascript
基于JavaScript操作DOM常用的API小结
2015/12/01 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
jQuery取得iframe中元素的常用方法详解
2016/01/14 Javascript
jQuery实现两个select控件的互移操作
2016/12/22 Javascript
Bootstrap 模态框实例插件案例分析
2016/12/28 Javascript
js图片放大镜实例讲解(必看篇)
2017/07/17 Javascript
Node.js创建Web、TCP服务器
2017/12/05 Javascript
Nodejs连接mysql并实现增、删、改、查操作的方法详解
2018/01/04 NodeJs
在vue项目中正确使用iconfont的方法
2018/09/28 Javascript
JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例
2019/09/11 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
2019/10/31 Javascript
BootstrapValidator验证用户名已存在(ajax)
2019/11/08 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
[02:40]DOTA2殁境神蚀者 英雄基础教程
2013/11/26 DOTA
Python基于matplotlib实现绘制三维图形功能示例
2018/01/18 Python
Python处理菜单消息操作示例【基于win32ui模块】
2018/05/09 Python
如何在Cloud Studio上执行Python代码?
2019/08/09 Python
python日志模块logbook使用方法
2019/09/19 Python
查看端口并杀进程python脚本代码
2019/12/17 Python
AP澳洲中文网:澳洲正品直邮,包税收件无忧
2019/07/12 全球购物
大一学生假期实习的自我评价
2013/10/12 职场文书
银行财务部实习生的自我鉴定
2013/11/27 职场文书
团队拓展活动方案
2014/08/28 职场文书
运动会加油稿100字
2014/09/19 职场文书
详解PHP用mb_string处理windows中文字符
2021/05/26 PHP
解析在浏览器地址栏输入一个URL后发生了什么
2021/06/21 Servers
使用springMVC所需要的pom配置
2021/09/15 Java/Android