2015-01-14 108 views
-3
import imaplib,time 

class Mail(): 
    def __init__(self): 
     self.user= 'USERNAME' 
     self.password= 'PASSWORD' 
     self.M = imaplib.IMAP4_SSL('imap.gmail.com', '993') 
     self.M.login(self.user, self.password) 

    def checkMail(self): 
     self.M.select() 
     self.unRead = self.M.search(None, 'UnSeen') 
     return len(self.unRead[1][0].split()) 



email = Mail() 

while 1: 
    print ('Sending') 
    time.sleep(2) 
+1

從理論上說,無非是打印的 '發送'。你將'email'初始化爲'MAIL'的一個實例,它應該通過IMAP登錄到一個電子郵件帳戶,但是沒有其他事情發生。你永遠不會叫'checkMail'。 此外,這個問題被認爲是不好的形式。你爲什麼不理解代碼?一個特定的部分會讓你感到困惑嗎?更加詳細一些。 – Logan

回答

0

您初始化class稱爲Mail,理應使用imaplib庫檢查Gmail帳戶的未讀郵件。但是,在將email分配給Mail的實例後,負責代碼中的操作的while循環由兩個事件組成:一個print和一個time.sleep()

所以你的代碼本質上是每2秒打印一次'Sending'的很長一段路。

運行註釋掉行email = Mail()由於憑據無效

bash-3.2$ python foo.py 
Sending 
Sending 
^CTraceback (most recent call last): 
    File "foo.py", line 21, in <module> 
    time.sleep(2) 
KeyboardInterrupt 
bash-3.2$ 
+0

好的,那麼如何更改代碼來檢查新電子郵件? – Sunny

相關問題