Search code examples
pythonamazon-web-servicesimapamazon-sesimaplib

Getting complaint email from SES abuse report email


I am using python Imaplib to scrape zoho inbox for getting bounced emails & failed emails which are being sent from SES.

Now while trying to get the email from abuse report notification, the email body gives no result (NONE)

The Code is:

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 "complaints@us-west-2.email-abuse.amazonses.com" 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)

Normally M.fetch(i, "(RFC822)") returns Body of the email.

Here the data is None. I want to know how to get the right content so that i could use regex to get relevant mail id


Solution

  • Got the solution, It was a bad mistake.

    Instead of using

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

    I had to use :

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

    As previously I had searched through UID instead fo the volatile id. Then later I was trying to get RFC822 or body of mail by volatile id.

    It was perhaps giving none because the mail might have been deleted or something.