当前位置:嗨网首页>书籍在线阅读

41-通过电子邮件控制你的计算机

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

18.12.4 通过电子邮件控制你的计算机

编写一个程序,每15分钟检查一次电子邮件账户,获取用电子邮件发送的所有指令,并自动执行这些指令。例如,BitTorrent是一个对等网络下载系统。利用免费的BitTorrent软件,如qBittorrent,可以在家用计算机上下载很大的媒体文件。如果你用电子邮件向该程序发送一个(完全合法的,根本不是盗版的)BitTorrent链接,该程序将检查电子邮件,发现这个消息,提取链接,然后启动qBittorrent,开始下载文件。通过这种方式,你可以在离开家的时候让家用计算机开始下载,这些(完全合法的,根本不是盗版的)下载在你回家前就能完成。

第17章介绍了如何利用 subprocess.Popen() 函数启动计算机上的程序。下面的调用将启动qBittorrent程序,并打开一个torrent文件:

qbProcess = subprocess.Popen(['C:\\Program Files (x86)\\qBittorrent\\
qbittorrent.exe', 'shakespeare_complete_works.torrent'])

当然,你希望该程序确保邮件来自你自己。具体来说,你可能希望该邮件包含一个口令,因为在电子邮件中伪造“ from ”地址对黑客来说很容易。该程序应该删除它发现的邮件,这样就不会在每次检查电子邮件账户时重复执行命令。作为一个额外的功能,让程序每次执行命令时,用电子邮件或短信给你发一条确认信息。因为该程序运行时你不会坐在运行它的计算机前面,所以利用日志函数(参见第11章)写文本文件日志是一个好主意,你可以检查是否发生错误。

qBittorrent(以及其他BitTorrent应用程序)有一个功能:下载完成后,它可以自动退出。第17章解释了如何用Popen对象的 wait() 方法确定启动的应用程序何时已经退出。 wait() 方法调用将阻塞,直到qBittorrent停止,然后程序可以通过电子邮件或短信通知你下载已经完成。

可以为这个项目添加许多可能的功能。如果遇到困难,可以从异步社区本书对应页面下载这个程序(torrentStarter.py)的示例实现。