Python电子邮件bot Pyzmail / IMAPclient错误

时间:2016-12-01 00:55:38

标签: python keyerror imapclient

所以我正在使用Python脚本从电子邮件中提取文本并按照these instructions这样做。这是迄今为止的脚本:

  template <typename F>
  auto f (F && op) -> decltype( op() )
   { return op(); }

但是我收到此错误:

import imapclient
import pprint
import pyzmail

mymail = "my@email.com"
password = input("Password: ")

imapObj = imapclient.IMAPClient('imap.gmail.com' , ssl=True)
imapObj.login(mymail , password)
imapObj.select_folder('INBOX', readonly=False)
UIDs = imapObj.search(['SUBJECT Testing'])
rawMessages = imapObj.fetch([5484], ['BODY[]'])
message = pyzmail.PyzMessage.factory(rawMessages[5484]['BODY[]'])

5484是搜索功能找到的电子邮件的ID。我也试过用UID而不是5484,但这也不起作用。提前谢谢!

2 个答案:

答案 0 :(得分:4)

尝试用[b'BODY []']

替换['BODY []']

答案 1 :(得分:4)

谢谢@Madalin Stroe。

我在Win10上使用python3.6.2和pyzmail1.0.3。 我跑的时候 message = pyzmail.PyzMessage.factory(rawMessages[4]['BODY[]']) ERR显示如下:

Traceback (most recent call last):
File "PATH/TO/mySinaEmail.py", line 42, in <module>
message = pyzmail.PyzMessage.factory(rawMessages[4]['BODY[]'])
KeyError: 'BODY[]'

当我将其修改为message = pyzmail.PyzMessage.factory(rawMessages[4][b'BODY[]'])时,它运行良好。