【问题标题】:Use Python 3.6 to copy Microsoft Outlook 2010 sub directories使用 Python 3.6 复制 Microsoft Outlook 2010 子目录
【发布时间】:2018-08-20 22:36:56
【问题描述】:

我正在尝试使用 Python 3.6 将子文件夹(默认文件夹下的文件夹)从 Outlook 2010 复制/同步到 Outlook 外部的目录。我知道如何使用默认文件夹(收件箱、草稿、已发送邮件等)执行此操作,因为可以通过 Bobby 对this 问题的回答中详述的方法访问默认文件夹。例如,我编写了将电子邮件从我的收件箱复制到任意目录的代码:

import win32com.client

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6)
messages = inbox.Items

for message in messages:
    try:
        path='C:\\test1\\'+message.Subject.replace('/','-').replace(':','-')+'.msg'
        message.SaveAs(path)
    except:
        print('Error with '+message.Subject)

del outlook, message

但是,我需要帮助才能访问较低的目录。下面是我正在谈论的内容的屏幕截图。

Outlook Directories

在这张图片中,红色箭头指向我发布的代码可以从中复制电子邮件的默认收件箱。图像中的蓝色箭头指向我要迭代的目录。

在我之前链接的question 中,Ozzius 说这是可能的,并提供了示例代码,尽管我无法让它为我工作。

谁能告诉我如何或者最好是指点我关于如何遍历这些子目录的文档和示例?我的最终目标是自动将这些文件夹中的电子邮件复制到共享驱动器,以便其他人从事这些项目的工作可以访问它们。

这是我在 Stack Overflow 上的第一个问题,如果您需要更多信息或者问错地方了,请告诉我。

【问题讨论】:

    标签: python outlook python-3.6 outlook-2010 mapi


    【解决方案1】:

    您可以按如下方式遍历给定文件夹的子文件夹。

    folders = root_folder.Folders
        for folder in folders:
            print('{0} is under {1}',format(folder.Name, root_folder.Name))
    

    您可以递归地链接这样的调用来遍历您的所有子文件夹。 要将电子邮件另存为.msg 文件,您可以使用以下代码

    mail_item.SaveAs(email_local_copy_path)
    

    【讨论】:

      猜你喜欢
      • 2016-04-05
      • 1970-01-01
      • 2013-11-16
      • 2019-07-12
      • 2018-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多