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)的示例实现。