0

I'm following this guide: https://automatetheboringstuff.com/chapter16/#calibre_link-45 to scrape emails and I am having issues using pyzmail.PyzMessage.factory(). I keep getting a KeyError.

I took the advice from here: Python email bot Pyzmail/IMAPclient error but I continued to get the same error.

imapObj = imapclient.IMAPClient("imap.gmail.com", ssl = True)
imapObj.login("MY_EMAIL_ADDRESS", "MY_PASSWORD")
imapObj.select_folder("INBOX", readonly=False)
UIDs = imapObj.gmail_search("test1")
print(UIDs)
rawMessages = imapObj.fetch(UIDs, ["BODY[]"])
pprint.pprint(rawMessages)
message = pyzmail.PyzMessage.factory(rawMessages[40041][b'BODY[]'])

I am getting this error:

[7156]
Traceback (most recent call last):
  File "C:/Users/Logan/PycharmProjects/email_sending_test/venv/main1.py", line 17, in <module>
    message = pyzmail.PyzMessage.factory(rawMessages[0][b'BODY[]'])
KeyError: b'BODY[]'
defaultdict(<class 'dict'>,
            {7156: {b'BODY[]': b'MIME-Version: 1.0\r\nDate: Thu, 3 Jan 2019     16:'
                           b'51:54 -0500\r\nMessage-ID: <CAB4Lt1swQPJvCL3ot'
                           b'8E7q2Pc9_C26hZxMdUgcZd9LbJUyhZbvw@mail.gmail'
                           b'.com>\r\nSubject: test1\r\nFrom: Rob Roberts'
                           b' <swimmingonanarwhal@gmail.com>\r\nTo: Rob Rob'
                           b'erts <swimmingonanarwhal@gmail.com>\r\nContent'
                           b'-Type: multipart/alternative; boundary="0000'
                           b'000000006f5b28057e94c5de"\r\n\r\n--000000000'
                           b'0006f5b28057e94c5de\r\nContent-Type: text/plai'
                           b'n; charset="UTF-8"\r\n\r\ntrying this ou'
                           b't\r\n\r\n--0000000000006f5b28057e94c5de\r\nCon'
                           b'tent-Type: text/html; charset="UTF-8"\r\n\r'
                           b'\n<div dir="ltr">trying this out</div>\r\n\r'
                           b'\n--0000000000006f5b28057e94c5de--',
                b'SEQ': 6962}})

Process finished with exit code 1    
Spiller101
  • 31
  • 4

0 Answers0