对于下载outlook电子邮件附件python时的循环退出

时间:2018-01-18 18:12:40

标签: python loops email outlook

我开发了一个代码,用于迭代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.Subject到它破坏的地方和原因)。然后第二次运行在~24之后断开,依此类推。我不得不再次运行代码3来浏览文件夹中的所有电子邮件。知道为什么代码退出循环

1 个答案:

答案 0 :(得分:0)

您的代码正在修改它正在迭代的集合。而不是使用“for”循环使用items.Count中的循环为1。

作为旁注,迭代文件夹中的所有邮件是一个可怕的想法 - 使用Items.RestrictItems.Find/FindNext让邮件存储为您找到匹配项。