Pyzmail / IMAPclient: не могу понять, какой ключ использовать - PullRequest
0 голосов
/ 04 января 2019

Я следую этому руководству: https://automatetheboringstuff.com/chapter16/#calibre_link-45 для очистки электронной почты, и у меня возникают проблемы с использованием pyzmail.PyzMessage.factory ().Я продолжаю получать KeyError.

Я воспользовался советом здесь: Python-бот электронной почты Pyzmail / IMAPclient 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[]'])

Я получаю эту ошибку:

[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    
...