【Python】利用邮件远程控制自己电脑

2018-08-13 16:34:10 浏览数 (8667)

本文转载至知乎ID:Charles(白露未晞)知乎个人专栏

下载W3Cschool手机App,0基础随时随地学编程>>戳此了解

导语

最近经常需要简单地远程控制一下电脑,比如远程查看一下电脑上模型训练的情况,模型训练完之后远程关闭电脑等等,于是就想着利用python来简单地实现一下这些功能,直接利用邮件远程控制自己电脑。

让我们愉快地开始吧~


相关文件

网盘下载链接: https://pan.baidu.com/s/1yWiZPWKE44n1UxgkdFfMlQ

密码: 8jiq


开发工具

Python版本:3.6.4

相关模块:

PIL模块;

email模块;

以及一些Python自带的模块。


环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。


原理简介

一. 思路

电脑每隔一段时间查看指定邮箱中是否收到了新的邮件,若未收到,则不进行任何操作,若收到了,则判断发件人的身份,若发件人为合法的控制者,则解析发件人的邮件,执行解析结果,否则忽略该邮件。

二. 具体实现

(1)收发邮件

我们利用POP3协议来收取邮件,利用SMTP协议来发送邮件,python内置对着两个协议的支持,因此具体实现起来十分简单轻松。

注1:

此处推荐廖雪峰的Python教程,里面有关于收发邮件的详细介绍,我就不搬砖了。

注2:

电脑端邮箱本人使用了新浪邮箱,手机端邮箱本人使用了QQ邮箱。

(2)查看电脑状况

直接利用PIL模块的ImageGrab.grab()函数对电脑进行截屏,然后通过邮件把电脑截屏发送到手机上。

如果想查看模型运行的情况,走之前把模型训练界面显示在桌面上就可以啦~

(3)可扩展性

除了查看电脑状况外,目前仅支持利用cmd命令控制电脑,若需要添加其他功能,可在下图所示的位置上添加:

(4)易用性

cmd命令太长手机上打起来不方便或者记不住怎么办?你可以在word2cmd.json中设置快捷命令语:

(5)FAQ

① 电脑端发送邮件失败?

解决方案:

若电脑端发送的邮件被识别为垃圾邮件使得手机端无法查看电脑状况时,可用手机登陆电脑端使用的邮箱,查看被退回的邮件,这样就可以在手机上查看电脑运行状况了。

注3:

若为手机端邮箱拒收,可以设置一下白名单。

② 电脑端无法登陆邮箱?

解决方案:

你需要开启SMTP和POP3服务:

密码应为客户端授权密码,而非登陆密码。当然新浪邮箱的登录密码即为客户端授权密码。

That's All.

完整源代码请自行参考相关文件。

使用演示

Step1:修改配置文件

必须修改的配置文件为:

config.json。

作用:

设置电脑端和手机端邮箱的信息。手机端邮箱的信息用于验证发信人是否为合法控制电脑者,电脑端邮箱的信息用于电脑端接收和发送邮件。

若需要加密SMTP会话,请设置enable_ssl为true,并设置正确的端口号。

选择修改的配置文件为:

word2cmd.json。

作用:

设置快捷命令语。

Step2:运行Server.py文件

发送指令:

执行指令:

结果:

That's All.


更多

代码截止2018-08-07测试无误。

相关文件中提供了打包好的EXE文件版本,无需配置环境即可使用。