App下載

【Python】利用郵件遠(yuǎn)程控制自己電腦

猿友 2018-08-13 16:34:10 瀏覽數(shù) (8770)
反饋

本文轉(zhuǎn)載至知乎ID:Charles(白露未晞)知乎個(gè)人專欄

下載W3Cschool手機(jī)App,0基礎(chǔ)隨時(shí)隨地學(xué)編程>>戳此了解

導(dǎo)語(yǔ)

最近經(jīng)常需要簡(jiǎn)單地遠(yuǎn)程控制一下電腦,比如遠(yuǎn)程查看一下電腦上模型訓(xùn)練的情況,模型訓(xùn)練完之后遠(yuǎn)程關(guān)閉電腦等等,于是就想著利用python來(lái)簡(jiǎn)單地實(shí)現(xiàn)一下這些功能,直接利用郵件遠(yuǎn)程控制自己電腦。

讓我們愉快地開始吧~


相關(guān)文件

網(wǎng)盤下載鏈接: https://pan.baidu.com/s/1yWiZPWKE44n1UxgkdFfMlQ

密碼: 8jiq


開發(fā)工具

Python版本:3.6.4

相關(guān)模塊:

PIL模塊;

email模塊;

以及一些Python自帶的模塊。


環(huán)境搭建

安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊即可。


原理簡(jiǎn)介

一. 思路

電腦每隔一段時(shí)間查看指定郵箱中是否收到了新的郵件,若未收到,則不進(jìn)行任何操作,若收到了,則判斷發(fā)件人的身份,若發(fā)件人為合法的控制者,則解析發(fā)件人的郵件,執(zhí)行解析結(jié)果,否則忽略該郵件。

二. 具體實(shí)現(xiàn)

(1)收發(fā)郵件

我們利用POP3協(xié)議來(lái)收取郵件,利用SMTP協(xié)議來(lái)發(fā)送郵件,python內(nèi)置對(duì)著兩個(gè)協(xié)議的支持,因此具體實(shí)現(xiàn)起來(lái)十分簡(jiǎn)單輕松。

注1:

此處推薦廖雪峰的Python教程,里面有關(guān)于收發(fā)郵件的詳細(xì)介紹,我就不搬磚了。

注2:

電腦端郵箱本人使用了新浪郵箱,手機(jī)端郵箱本人使用了QQ郵箱。

(2)查看電腦狀況

直接利用PIL模塊的ImageGrab.grab()函數(shù)對(duì)電腦進(jìn)行截屏,然后通過(guò)郵件把電腦截屏發(fā)送到手機(jī)上。

如果想查看模型運(yùn)行的情況,走之前把模型訓(xùn)練界面顯示在桌面上就可以啦~

(3)可擴(kuò)展性

除了查看電腦狀況外,目前僅支持利用cmd命令控制電腦,若需要添加其他功能,可在下圖所示的位置上添加:

(4)易用性

cmd命令太長(zhǎng)手機(jī)上打起來(lái)不方便或者記不住怎么辦?你可以在word2cmd.json中設(shè)置快捷命令語(yǔ):

(5)FAQ

① 電腦端發(fā)送郵件失???

解決方案:

若電腦端發(fā)送的郵件被識(shí)別為垃圾郵件使得手機(jī)端無(wú)法查看電腦狀況時(shí),可用手機(jī)登陸電腦端使用的郵箱,查看被退回的郵件,這樣就可以在手機(jī)上查看電腦運(yùn)行狀況了。

注3:

若為手機(jī)端郵箱拒收,可以設(shè)置一下白名單。

② 電腦端無(wú)法登陸郵箱?

解決方案:

你需要開啟SMTP和POP3服務(wù):

密碼應(yīng)為客戶端授權(quán)密碼,而非登陸密碼。當(dāng)然新浪郵箱的登錄密碼即為客戶端授權(quán)密碼。

That's All.

完整源代碼請(qǐng)自行參考相關(guān)文件。

使用演示

Step1:修改配置文件

必須修改的配置文件為:

config.json。

作用:

設(shè)置電腦端和手機(jī)端郵箱的信息。手機(jī)端郵箱的信息用于驗(yàn)證發(fā)信人是否為合法控制電腦者,電腦端郵箱的信息用于電腦端接收和發(fā)送郵件。

若需要加密SMTP會(huì)話,請(qǐng)?jiān)O(shè)置enable_ssl為true,并設(shè)置正確的端口號(hào)。

選擇修改的配置文件為:

word2cmd.json。

作用:

設(shè)置快捷命令語(yǔ)。

Step2:運(yùn)行Server.py文件

發(fā)送指令:

執(zhí)行指令:

結(jié)果:

That's All.


更多

代碼截止2018-08-07測(cè)試無(wú)誤。

相關(guān)文件中提供了打包好的EXE文件版本,無(wú)需配置環(huán)境即可使用。

0 人點(diǎn)贊