[英]For loop exits while downloading outlook email attachments python
我已经开发了一个代码来遍历Outlook文件夹并从具有预定义主题行的电子邮件中下载附件,然后删除邮件并删除主题与预定义主题不同的邮件。代码如下
folder = inbox.Folders("folder")
for msg in folder.Items:
if msg.Subject == "Predefined msg Subject":
for att in msg.Attachments:
msg_date = msg.SentOn.srftime(%Y-%m-%d)
att.SaveAsFile(os.path.join(dest_folder, msg_date + "_" + att.Filename)
else:
pass
msg.Delete()
continue
我的文件夹中大约有150条消息,大约有8条带有所需附件的消息,其他仅被删除。 但上面的循环恰好在73处中断(我使用了一个计数器和msg。 第二轮运行在〜24之后中断,依此类推。 我不得不再运行代码3次才能遍历文件夹中的所有电子邮件。 知道为什么代码退出循环
您的代码正在修改要迭代的集合。 而不是使用“ for”循环,而是使用items.Count倒数为1的循环。
附带说明一下,遍历文件夹中的所有消息是一个可怕的想法-使用Items.Restrict
或Items.Find/FindNext
让消息存储为您找到匹配项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.