您好,登錄后才能下訂單哦!
0、前言
在以前讀書的時候,實(shí)驗(yàn)室里面要求每天都要關(guān)電腦,有時候出去玩得晚了,懶得回實(shí)驗(yàn)室關(guān)電腦,又沒有同學(xué)幫忙。于是就想,能不能通過什么手段實(shí)現(xiàn)遠(yuǎn)程關(guān)閉電腦。在網(wǎng)上搜索一番后,決定用 python + email,實(shí)現(xiàn)遠(yuǎn)程關(guān)閉電腦。
1、準(zhǔn)備
python: 3.5.2 email:163郵箱 system:Win10
安裝依賴包email:在python安裝目錄下/Scripts下執(zhí)行:pip install email
設(shè)置163郵箱的POP3/SMTP服務(wù) : 登錄163郵箱 –> 設(shè)置 –> POP3/SMTP/IMAP –> 勾選POP3/SMTP服務(wù)
2、說明
執(zhí)行py程序后,程序?qū)⒚扛?0分鐘(時間可以自己設(shè)置)讀取一次郵箱最新郵件,解析獲得郵件主題,當(dāng)主題為“關(guān)機(jī)”時,程序?qū)㈥P(guān)閉電腦,為“重啟”時,將重啟電腦。在長時間離開電腦時,可以將py程序跑起來,如果需要關(guān)機(jī)或重啟,可以向郵箱發(fā)一封郵件即可
3、代碼
# -*- coding:utf-8 -*- import os import time import poplib import email from 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郵箱設(shè)置中的客戶端授權(quán)密碼 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 == '關(guān)機(jī)': os.system('shutdown -s -t 3') break time.sleep(600) # 每10分鐘檢查一次 if __name__ == '__main__': checkEmailSubject()
4、結(jié)束語
不過自打我工作半年來,一共也就只關(guān)過3、4次電腦
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。