因此,我正在编写一个python脚本来从电子邮件中提取文本,并按照these instructions执行此操作。这是迄今为止的剧本:

import imapclient
import pprint
import pyzmail

mymail = "[email protected]"
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[]'])

但是我得到了这个错误:
message = pyzmail.PyzMessage.factory(rawMessages[5484]['BODY[]'])
KeyError: 5484

5484是搜索功能找到的电子邮件的ID。我也试过用uid代替5484,但也没用。提前谢谢!

最佳答案

谢谢你@madalin stroe。
我在Win10上使用python3.6.2和pyzmail1.0.3。
当我跑的时候
message = pyzmail.PyzMessage.factory(rawMessages[4]['BODY[]'])
错误显示如下:

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[]'])时,它运行良好。

10-08 20:27