Python实用工具,email模块,Python实现邮件远程控制自己电脑

楚_阳 2021-08-09 13:42:00
Python 工具 实用 实用工具 用工


前言

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

image.png

开发工具

Python版本:3.6.4

相关模块:

PIL模块;

email模块;

以及一些Python自带的模块。

环境搭建

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

原理简介

一. 思路

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

二. 具体实现

(1)收发邮件

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

注1:

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

(2)查看电脑状况

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

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

(3)可扩展性

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

def run(self):
print('[INFO]:Start server successfully...')
while True:
self.email.reset_pop()
mails = self.email.get('list')['list'][1]
if len(mails) > self.num_msg:
for i in range(self.num_msg+1, len(mails)+1):
res = self.email.get(i)
res_from = res[i]['From']
res_from = re.findall(r'<(.*?)>', res_from)[0].lower()
print(res_from)
if res_from != options['sender']['email'].lower():
continue
command = res[i]['Subject']
if command in word2cmd_dict:
command = word2cmd_dict[command]
if command == 'screenshot':
savename = './screenshot.jpg'
self.screenshot(savename)
try:
is_success = self.email.send(attach_path=savename)
if not is_success:
raise RuntimeError('Fail to send screenshot...')
print('[INFO]: Send screenshot successfully...')
except:
print('[Error]: Fail to send screenshot...')
else:
self.run_cmd(command)
self.num_msg = len(mails)
time.sleep(self.time_interval)

(4)易用性

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

图片

(5)FAQ

① 电脑端发送邮件失败?

解决方案:

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

注3:

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

② 电脑端无法登陆邮箱?

解决方案:

你需要开启SMTP和POP3服务:

图片

图片

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

使用演示

Step1:修改配置文件

必须修改的配置文件为:

config.json。

作用:

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

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

图片

选择修改的配置文件为:

word2cmd.json。

作用:

设置快捷命令语。

Step2:运行Server.py文件

图片

发送指令:

图片

图片

执行指令:

图片

结果:

image.png

文章到这里就结束了,感谢你的观看,关注我每天分享Python小工具系列,下篇文章分享有趣的小程序

为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。

干货主要有:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

⑥ 两天的Python爬虫训练营直播权限

**All done~完整源代码+干货详见个人主页简介或私信领取

版权声明
本文为[楚_阳]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/daimubai/p/15118240.html

  1. 利用Python爬虫获取招聘网站职位信息
  2. Using Python crawler to obtain job information of recruitment website
  3. Several highly rated Python libraries arrow, jsonpath, psutil and tenacity are recommended
  4. Python装饰器
  5. Python实现LDAP认证
  6. Python decorator
  7. Implementing LDAP authentication with Python
  8. Vscode configures Python development environment!
  9. In Python, how dare you say you can't log module? ️
  10. 我收藏的有关Python的电子书和资料
  11. python 中 lambda的一些tips
  12. python中字典的一些tips
  13. python 用生成器生成斐波那契数列
  14. python脚本转pyc踩了个坑。。。
  15. My collection of e-books and materials about Python
  16. Some tips of lambda in Python
  17. Some tips of dictionary in Python
  18. Using Python generator to generate Fibonacci sequence
  19. The conversion of Python script to PyC stepped on a pit...
  20. Python游戏开发,pygame模块,Python实现扫雷小游戏
  21. Python game development, pyGame module, python implementation of minesweeping games
  22. Python实用工具,email模块,Python实现邮件远程控制自己电脑
  23. Python utility, email module, python realizes mail remote control of its own computer
  24. 毫无头绪的自学Python,你可能连门槛都摸不到!【最佳学习路线】
  25. Python读取二进制文件代码方法解析
  26. Python字典的实现原理
  27. Without a clue, you may not even touch the threshold【 Best learning route]
  28. Parsing method of Python reading binary file code
  29. Implementation principle of Python dictionary
  30. You must know the function of pandas to parse JSON data - JSON_ normalize()
  31. Python实用案例,私人定制,Python自动化生成爱豆专属2021日历
  32. Python practical case, private customization, python automatic generation of Adu exclusive 2021 calendar
  33. 《Python实例》震惊了,用Python这么简单实现了聊天系统的脏话,广告检测
  34. "Python instance" was shocked and realized the dirty words and advertisement detection of the chat system in Python
  35. Convolutional neural network processing sequence for Python deep learning
  36. Python data structure and algorithm (1) -- enum type enum
  37. 超全大厂算法岗百问百答(推荐系统/机器学习/深度学习/C++/Spark/python)
  38. 【Python进阶】你真的明白NumPy中的ndarray吗?
  39. All questions and answers for algorithm posts of super large factories (recommended system / machine learning / deep learning / C + + / spark / Python)
  40. [advanced Python] do you really understand ndarray in numpy?
  41. 【Python进阶】Python进阶专栏栏主自述:不忘初心,砥砺前行
  42. [advanced Python] Python advanced column main readme: never forget the original intention and forge ahead
  43. python垃圾回收和缓存管理
  44. java调用Python程序
  45. java调用Python程序
  46. Python常用函数有哪些?Python基础入门课程
  47. Python garbage collection and cache management
  48. Java calling Python program
  49. Java calling Python program
  50. What functions are commonly used in Python? Introduction to Python Basics
  51. Python basic knowledge
  52. Anaconda5.2 安装 Python 库(MySQLdb)的方法
  53. Python实现对脑电数据情绪分析
  54. Anaconda 5.2 method of installing Python Library (mysqldb)
  55. Python implements emotion analysis of EEG data
  56. Master some advanced usage of Python in 30 seconds, which makes others envy it
  57. python爬取百度图片并对图片做一系列处理
  58. Python crawls Baidu pictures and does a series of processing on them
  59. python链接mysql数据库
  60. Python link MySQL database