2016-04-23 14 views
2

私はこの種のコードの初心者です。プロジェクトの一環として、最初に未読のメールを読み込むPythonコードを書こうとしています最初に)、内容を印刷し、受信トレイからメールを削除します。ここにはコードがありますが、電子メールを削除することはできません。何時間もこれをグーグルで探していて、どこにもいません。pythonとIMAP4経由で受信トレイからメールを削除する

#readyourmail.py 
import imaplib 
import email 
def readmail(): 
    try: 
     mail = imaplib.IMAP4_SSL('imap.gmail.com') 
     mail.login('email','password') 
     mail.select('inbox') 
     result, data = mail.uid('search', None, "ALL") 
     latest_email_uid = data[0].split()[0] 
     result, email_data = mail.uid('fetch', latest_email_uid, '(RFC822)') 
     raw_email = email_data[0][1] 
     raw_email_string = raw_email.decode('utf-8') 
     email_message = email.message_from_string(raw_email_string) 
     for part in email_message.walk(): 
      if part.get_content_type() == "text/plain": 
       body = part.get_payload(decode=True) 
       print(body.decode('utf-8')) 
      else: 
       continue 
     mail.store(latest_email_uid,'+FLAGS','\\Deleted') 
     mail.expunge() 
    except: 
     print("No valid emails") 

ありがとうございました!

答えて

1

メールを取得するためにUIDコマンドを使用しているため、UIDコマンドを使用して削除する必要があります。

次のコードを試してください。

mail.uid('STORE', latest_email_uid , '+FLAGS', '(\Deleted)') 
mail.expunge() 
関連する問題