快捷搜索:  汽车  科技

远程服务器执行python脚本:一个用python编写的远程关机程序

远程服务器执行python脚本:一个用python编写的远程关机程序******@qq.com # 邮箱 ******** # 关机命令,采用字母 ********** # qq邮箱授权码3)读取txt文件代码import imapclient import os import time import pyzmail import datetime from datetime import date import win32api win32con2)编写一个txt文件,内容如下首先需要python语言学习的基础知识,比如基础的语法、语句等;下面来说咱们用python编写远程关机软件的第一步,用python实现邮件发送功能,要实现邮件发送功能,需要用到pyzmail第三方的邮件库包,这个库包我就不具体介绍了,比python默认带的比默认smtplib和mime模块简单很多简单得多,关于第三方模块包的安装就不在细说了,随

目前市场上流行的远程关机软件有向日葵、蒲公英等,但都需要注册及收费,因为我工作的原因,有时候需要紧急外出,但也不知道什么时间回来,也许特别晚了,这时候我就想到如何实现,远程关机呢。

python语言,目前市场上比较火的一款软件,又因为前段时间,我对python语言进行过简单的学习,所以萌生了用python语言编写一款远程关机的小软件。

说动手就动手,下面简单介绍一下用python编写一款远程关机的小程序,此款软件对于python学习爱好者可以作为参考。

第一步:写代码

首先需要python语言学习的基础知识,比如基础的语法、语句等;

下面来说咱们用python编写远程关机软件的第一步,用python实现邮件发送功能,要实现邮件发送功能,需要用到pyzmail第三方的邮件库包,这个库包我就不具体介绍了,比python默认带的比默认smtplib和mime模块简单很多简单得多,关于第三方模块包的安装就不在细说了,随后写个关于第三方模块包的安装专题,不过提供一个网站可以下载https://pypi.org/project/pywin32/223/。

1)写代码之前,需要先引入几个模块

import imapclient import os import time import pyzmail import datetime from datetime import date import win32api win32con

2)编写一个txt文件,内容如下

******@qq.com # 邮箱 ******** # 关机命令,采用字母 ********** # qq邮箱授权码

3)读取txt文件代码

try: while True: # 继续执行循环 Filename = 'set_youxiang.txt' dt = datetime.datetime.now() with open(filename) as file_object: lines = file_object.readlines() file_object.close()

4)pyzmai邮件读取代码,lines[0]是TXT文件的第一行邮箱名称,lines[2]是TXT文件的第三行邮箱授权码,下面会介绍如何获取邮箱授权码

imapobj = imapclient.IMAPClient('pop.qq.com' ssl=True) # 连接到邮箱服务器 imapobj.login(lines[0].rstrip() lines[2].rstrip()) # 登录到邮箱服务器 imapobj.select_folder('INBOX' readonly=True) # 选择收件箱“邮件”文件夹 UIDs = imapobj.search([u'SINCE' date(dt.year dt.month dt.day)]) # 选择给定日期的邮件

5)读取邮件内容

if len(UIDs) != 0: # 判断读取邮箱内是否有邮件 rawMessages = imapobj.fetch([UIDs[-1]] ['BODY[]' 'FLAGS']) # 读取最后一个邮件 message = pyzmail.PyzMessage.factory(rawMessages[UIDs[-1]][b'BODY[]']) # 读取最后一个邮件的内容 zhu_ti = str(message.get_subject()) # 读取邮件主题 lines[1] = str(lines[1].rstrip()) # txt文件内第二行内容,删除字符串末尾的空格

6)比较TXT文件内设置的关机密码(txt文件内第二行)与邮箱主题内读取内容:

lines[1] = str(lines[1].rstrip()) # txt文件内第二行内容,删除字符串末尾的空格 if zhu_ti.isalpha(): # 判断读取主题内容不为空值 zhu_ti = zhu_ti.lower() # 邮件主题内容转小写,避免比较字符串错误 lines[1] = lines[1].lower() # txt文件内第二行内容,设定关机密码字母转小写,避免比较字符串错误 # print('邮件主题:' zhu_ti) if zhu_ti == lines[1]: # 比较邮件内主题内容与 txt文件内第二行内容,设定关机密码比较 # print("关机") imapobj.delete_messages(UIDs[-1]) # 删除电子邮件 imapobj.expunge() os.system('shutdown -s -t 60') # 执行关机命令

7)执行关机命令,删除关机命令邮件

if zhu_ti == lines[1]: # 比较邮件内主题内容与 txt文件内第二行内容,设定关机密码比较 # print("关机") imapobj.delete_messages(UIDs[-1]) # 删除电子邮件 imapobj.expunge() os.system('shutdown -s -t 60') # 执行关机命令

8)断开服务器连接,休眠30秒

imapobj.logout() # 从IMAP服务器断开 time.sleep(30) # 休眠30秒

9)休眠30秒后,继续上面步骤的循环

try: while True: # 继续执行循环 filename = 'set_youxiang.txt' dt = datetime.datetime.now()

10)抛出python运行异常,强制退出,无网络,密码错误

except BaseException as e: # 抛出异常 if isinstance(e KeyboardInterrupt): # 强制停止运行 # Ctrl -C停止运行 win32api.MessageBox(0 "Ctrl -C停止运行;" "提醒" win32con.MB_OK) print('\nDone') os.exit(1) elif isinstance(e imapclient.socket.gaierror): # 无网络异常 # 提醒OK消息框 win32api.MessageBox(0 "无网络,请检查网络;" "提醒" win32con.MB_OK) os.exit(1) elif isinstance(e FileNotFoundError): # 发送的邮箱授权码密码不正确 win32api.MessageBox(0 "异常,请检查,邮箱与密码是否正确;" "提醒" win32con.MB_OK) print('\nDone') os.exit(1)

第二步:设置邮箱授权码

1)打开QQ邮箱

第二步:设置邮箱授权码

1)打开QQ邮箱

远程服务器执行python脚本:一个用python编写的远程关机程序(1)

2)选择设置

远程服务器执行python脚本:一个用python编写的远程关机程序(2)

3)打开设置—选择“账户”

远程服务器执行python脚本:一个用python编写的远程关机程序(3)

4)账户—开启服务POP3/SMTP 需要发送短信验证

远程服务器执行python脚本:一个用python编写的远程关机程序(4)

5)发送短信验证后记住邮箱授权码,把授权码写在TXT文件内第三行

远程服务器执行python脚本:一个用python编写的远程关机程序(5)

第三步,远程关机电脑设定

1)打开电脑控制面板—选择电源管理

远程服务器执行python脚本:一个用python编写的远程关机程序(6)

2)电源管理-选择更改计划

远程服务器执行python脚本:一个用python编写的远程关机程序(7)

3)使计算机进入睡眠—改为“从不”—保存

远程服务器执行python脚本:一个用python编写的远程关机程序(8)

第四步,测试

用手机或者电脑—发送邮件,发送到你在TXT文件第一行内设定邮箱内,主题填写TXT文件内第二行内容,邮件正文可以为空,发送邮件即可,随后奇迹出现了

远程服务器执行python脚本:一个用python编写的远程关机程序(9)

远程服务器执行python脚本:一个用python编写的远程关机程序(10)

猜您喜欢: