不知道大家有沒有這樣一個(gè)煩惱,“自己的電腦總是被別人使用,又不好意思設(shè)置密碼”,所以利用python設(shè)計(jì)了一個(gè)程序來實(shí)現(xiàn)自由管控。
功能雖然簡單,但大家可以通過其思路來實(shí)現(xiàn)更多的功能。
大致功能主要是兩個(gè)部分,
一、電腦開機(jī)時(shí),我的手機(jī)能收到通知。 二、可以通過手機(jī)發(fā)個(gè)特定的mail,就可以控制電腦關(guān)機(jī)。第一個(gè)步驟:申請(qǐng)一個(gè)郵箱,使這個(gè)郵箱與你的手機(jī)號(hào)碼綁定,然后你在這個(gè)郵箱中設(shè)定如果有新的郵件就發(fā)短信通知,這樣開機(jī)時(shí)往這個(gè)郵箱發(fā)個(gè)mail,我手機(jī)就會(huì)收到短信通知了。
第二個(gè)步驟:通過python 腳本,定時(shí)去檢查163.com郵箱中是否有指定的郵件,如果有,則執(zhí)行特定功能(我的是關(guān)機(jī))。
第一步驟申請(qǐng)成功以后。手機(jī)也可以通過一個(gè)號(hào)碼10658139來發(fā)送mail,編輯短信格式如:[email protected](空格)主旨(空格)正文.
這樣我如果想關(guān)機(jī),就會(huì)用手機(jī)發(fā)個(gè)mail到163郵箱,主旨是'關(guān)機(jī)',程式檢測到這個(gè)mail以后就會(huì)執(zhí)行關(guān)機(jī)動(dòng)作。
注意:手機(jī)發(fā)送郵件時(shí)的格式,注意讀取郵件時(shí)get_payload的輸出,根據(jù)輸出和你發(fā)的郵件內(nèi)容要匹配,當(dāng)時(shí)我就遇到/n的問題。
回去后想了想,既然可以用手機(jī)郵箱控制,那么大家都用的是智能機(jī)咯,而且大家都比較喜歡玩微信,那么微信里面有個(gè)郵箱助手,實(shí)時(shí)提醒你新郵件,這樣可以更方便的控制你自己的機(jī)子咯!!!!!
#!/etc/bin/env python#-*-encoding=utf-8-*-#auth@:dengyongkai#blog@:blog.sina.com.cn/kaiyongdeng import poplib,emailfrom email.header import decode_headerimport smtplibimport timeimport os,sysimport random def accp_mail(): try: p=poplib.POP3('pop.qq.com') p.user('用戶名') p.pass_('密碼') ret = p.stat() except poplib.error_proto,e: return 1 print "Login failed:",e sys.exit(1)# for i in range(1,ret[0]+1):# str=s.top(i,0)# strlist=[]# for x in str[1]:# try:# strlist.append(x.decode())# except:# try:# strlist.append(x.decode('gbk'))# except:# strlist.append(x.decode('big5'))# # mm = email.message_from_string('/n'.join(strlist))# sub=decode_header(mm['subject'])# if sub[0][1]:# submsg = sub[0][0].decode(sub[0][1])# else:# submsg = sub[0][0]## if submsg.strip()=='startpc':# s.dele(i)# return 0# # s.quit()# return 1# for item in p.list()[1]: number,octets = item.split(' ')# print "Message %s: %sbytes"%(number,octets) lines = p.retr(number)[1] msg = email.message_from_string("/n".join(lines))# print msg.as_string() print msg.get_payload() if msg.get_payload()=="start/n/n": return 0 def send_mail(): try: handle = smtplib.SMTP('smtp.163.com', 25) handle.login('********@163.com','密碼') msg = "To: ********@qq.com/r/nFrom: ********@163.com/r/nSubject: startpc /r/n/r/nstart/r/n" handle.sendmail('********@163.com','********@qq.com', msg) handle.close() return 1 except: return 0 if __name__=='__main__': while send_mail()==0: time.sleep(2) while 1: time.sleep(5) if accp_mail()==0: os.system('shutdown -f -s -t 10 -c closing...') #print "哈哈哈哈哈哈哈,成功啦!!!!!!" break
新聞熱點(diǎn)
疑難解答
圖片精選