使用IMAPClient,列表索引是否超出for for in in in List循环?

问题描述

我不确定是否缺少明显的东西。我正在尝试检索电子邮件并对其进行遍历,以查找文本中的特定项目。该代码运行,但是在遍历所选文件夹中的项目的过程中抛出“列表索引超出范围”错误。我看不到要迭代的列表是要与之在一起的索引位置的列表怎么发生?

我正在使用IMAPClient程序包,并且我的脚本选择了正确的文件夹,并找到具有特定主题的电子邮件,然后返回列表

client.select_folder('WebsiteMessages',readonly=True)
result = client.search('SUBJECT "User Details"')
print(result)

这将返回文件夹中符合搜索条件的项目列表

 [1,2,9,10,11,15,19,22,23,24,25,26,27,28,30,32,36,46,48,49,51,55,57,60,61]

如果我尝试遍历该列表,则会到达特定点,然后使列表索引超出范围错误

for i in result:
    message = client.fetch(result[i],b'RFC822')
    print(message)

我不知道看到该列表是由搜索生成的,该错误如何发生?有什么想法吗?

解决方法

未经测试,只是一个猜测:

for i in result:
    message = client.fetch(i,b'RFC822')
    print(message)

i已经是该值,使用它作为该值的索引是不正确的。

第二种解决方案,可能是您想要的:

for i in range(result):
    message = client.fetch(result[i],b'RFC822')
    print(message)