功能雖然簡單,但大家可以通過其思路來實現更多的功能。
大致功能主要是兩個部分,
壹、電腦開機時,我的手機能收到通知。
二、可以通過手機發個特定的mail,就可以控制電腦關機。
第壹個步驟:申請壹個郵箱,使這個郵箱與妳的手機號碼綁定,然後妳在這個郵箱中設定如果有新的郵件就發短信通知,這樣開機時往這個郵箱發個mail,我手機就會收到短信通知了。
第二個步驟:通過python 腳本,定時去檢查163.com郵箱中是否有指定的郵件,如果有,則執行特定功能(我的是關機)。
第壹步驟申請成功以後。手機也可以通過壹個號碼10658139來發送mail,編輯短信格式如:test@163.com(空格)主旨(空格)正文.
這樣我如果想關機,就會用手機發個mail到163郵箱,主旨是'關機',程式檢測到這個mail以後就會執行關機動作。
註意:手機發送郵件時的格式,註意讀取郵件時get_payload的輸出,根據輸出和妳發的郵件內容要匹配,當時我就遇到
的問題。
回去後想了想,既然可以用手機郵箱控制,那麽大家都用的是智能機咯,而且大家都比較喜歡玩微信,那麽微信裏面有個郵箱助手,實時提醒妳新郵件,這樣可以更方便的控制妳自己的機子咯!!!!!
#!/etc/bin/env python
#-*-encoding=utf-8-*-
#auth@:dengyongkai
#blog@:blog.sina.com.cn/kaiyongdeng
import poplib,email
from email.header import decode_header
import smtplib
import time
import os,sys
import 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('
'.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("
".join(lines))
# print msg.as_string()
print msg.get_payload()
if msg.get_payload()=="start
":
return 0
def send_mail():
try:
handle = smtplib.SMTP('smtp.163.com', 25)
handle.login('********@163.com','密碼')
msg = "To: ********@qq.com
From: ********@163.com
Subject: startpc
start
"
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