【问题标题】:Python email bot Pyzmail/IMAPclient errorPython 电子邮件机器人 Pyzmail/IMAPclient 错误
【发布时间】:2017-04-15 12:21:36
【问题描述】:

所以我正在编写一个 Python 脚本来从电子邮件中提取文本,并关注 these instructions 这样做。这是目前为止的脚本:

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,但这也不起作用。提前致谢!

【问题讨论】:

  • rawMessages 是什么样的,UID 是什么样的?我猜有 UID 为 5484 的消息。IMAPClient 默认使用 UID。

标签: python keyerror imapclient


【解决方案1】:

尝试将 ['BODY[]'] 替换为 [b'BODY[]']

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-17
      • 2014-07-27
      • 1970-01-01
      • 1970-01-01
      • 2015-10-23
      • 2022-01-08
      • 2010-12-07
      • 1970-01-01
      相关资源
      最近更新 更多