0、前言
在以前讀書的時候,實驗室里面要求每天都要關電腦,有時候出去玩得晚了,懶得回實驗室關電腦,又沒有同學幫忙。于是就想,能不能通過什么手段實現遠程關閉電腦。在網上搜索一番后,決定用 python + email,實現遠程關閉電腦。
1、準備
python: 3.5.2 email:163郵箱 system:Win10
安裝依賴包email:在python安裝目錄下/Scripts下執行:pip install email
設置163郵箱的POP3/SMTP服務 : 登錄163郵箱 –> 設置 –> POP3/SMTP/IMAP –> 勾選POP3/SMTP服務
2、說明
執行py程序后,程序將每隔10分鐘(時間可以自己設置)讀取一次郵箱最新郵件,解析獲得郵件主題,當主題為“關機”時,程序將關閉電腦,為“重啟”時,將重啟電腦。在長時間離開電腦時,可以將py程序跑起來,如果需要關機或重啟,可以向郵箱發一封郵件即可
3、代碼
# -*- coding:utf-8 -*-import osimport timeimport poplibimport emailfrom email.header import decode_header#========================================# 讀取Email,獲取Email主題#========================================def getEmailSubject(): read = poplib.POP3('pop.163.com') read.user('xxx@163.com')# 163郵箱用戶名 read.pass_('xxx') # 163郵箱設置中的客戶端授權密碼 allEmails = read.stat() # 讀取郵件信息 topEmail = read.top(allEmails[0], 0) # 獲取最新的一封郵件 tmp = [] # 解碼郵件,存入tmp for s in topEmail[1]: try: tmp.append(s.decode()) except: try: tmp.append(s.decode('gbk')) except: tmp.append(s.decode('big5')) message = email.message_from_string('/n'.join(tmp)) # 獲取郵件主題 subject = decode_header(message['Subject']) if subject[0][1]: subjectDecode = subject[0][0].decode(subject[0][1]) else: subjectDecode = subject[0][0] return subjectDecode#=========================================# 檢查Email的主題#=========================================def checkEmailSubject(): while True: subject = getEmailSubject() print('check subject ...') print('subject is ' + subject) if subject == '重啟': os.system('shutdown -r -t 3') break if subject == '關機': os.system('shutdown -s -t 3') break time.sleep(600) # 每10分鐘檢查一次if __name__ == '__main__': checkEmailSubject()
4、結束語
不過自打我工作半年來,一共也就只關過3、4次電腦
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林站長站。
新聞熱點
疑難解答