2017-02-17 116 views
0

我正在使用python Imaplib抓取zoho收件箱以獲取退回的電子郵件&從SES發送的失敗電子郵件。從SES濫用報告電子郵件中收到投訴電子郵件

現在試圖擺脫濫用報告通知的電子郵件,在電子郵件正文沒有給出結果(無)

的代碼是:

def ss(): 
    yesterday = (datetime.today() - timedelta(days=30)).strftime('%d-%b-%Y') 

    M = imaplib.IMAP4_SSL('imap.zoho.com') 
    M.login('email', password) 
    M.select() 

    line = '(FROM "[email protected]" SINCE {0})'.format(yesterday) 
    typ, data = M.uid('search', line) 
    # print(typ,data) 
    for i in reversed(data[0].split()): 

     print(i) 
     result, data = M.fetch(i, "(RFC822)") 
     print(data) 

通常M.fetch(我「(RFC822 )「)返回電子郵件的正文。

這裏的數據是無。我想知道如何獲得正確的內容,以便我可以使用正則表達式來獲取相關的郵件編號

回答

1

得到了解決方案,這是一個很糟糕的錯誤。

而不是使用

result, data = M.fetch(i, "(RFC822)") 

的我不得不使用:

result, data = M.uid('fetch', i, '(RFC822)') 

正如前面我通過UID已經搜查代替FO的揮發性ID。後來,我試圖通過易失性標識來獲得RFC822或郵件正文。

它可能沒有提供,因爲郵件可能已被刪除或其他東西。