Python imaplib fetch body emails gmail

前端 未结 4 978
长发绾君心
长发绾君心 2020-12-14 23:27

I read this already and wrote this script to fetch body for emails in some mail box which title begins with \'$\' and is sent by some sender.

import email, g         


        
4条回答
  •  失恋的感觉
    2020-12-14 23:41

    import datetime
    import email
    import imaplib
    import mailbox
    import re
    
    EMAIL_ACCOUNT = "yourmail@yahoo.com"
    PASSWORD = "password"
    mail = imaplib.IMAP4_SSL('imap.mail.yahoo.com')
    mail.login(EMAIL_ACCOUNT, PASSWORD)
    mail.select('INBOX')
    result, data = mail.search(None, '(FROM "Sender Email")','ALL')
    result, data = mail.search(None, '(SUBJECT "Message")','ALL')
    i = len(data[0].split())
    
    if i == 1:
       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)
       body = email_message.get_payload(decode=True)
       for part in email_message.walk():
            if part.get_content_type() == "text/plain":
               emailBody = part.get_payload(decode=True)
               print(emailBody)            
            else:
               continue
    else:
      print('Email NOT ' + EMAIL_ACCOUNT  )
    

提交回复
热议问题