3

所以我正在编写一个 Python 脚本来从电子邮件中提取文本并按照这些说明进行操作。这是迄今为止的脚本:

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[]'])

但是我收到了这个错误:

message = pyzmail.PyzMessage.factory(rawMessages[5484]['BODY[]'])
KeyError: 5484

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

4

2 回答 2

7

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

于 2017-10-27T10:04:30.473 回答
4

尝试用 [b'BODY[]'] 替换 ['BODY[]']

于 2017-03-05T15:28:24.300 回答