0

我无法将新 MailItems 添加到我动态创建的 PST 文件中。我可以自己创建 MailItems,并将它们保存到我计算机上的某个位置就可以了。但是,当我尝试将 MailItems 保存到 PST 时,没有任何反应。我尝试调用该Items.Add()方法,它给了我一个新的 MailItem,但没有增加 Items 集合。我到处寻找解决方案,我在 VBA 和 C# 中看到了一些示例,但是由于我对这两种语言都没有经验,因此翻译成 Python 效果不佳。

目前使用 Python 3.9.1

以下是我正在做的,请原谅任何错误,我对我的 Python 非常生疏:

Outlook = None
pst = os.path.join(self.destPath, (dest + ".pst")

try:
    Outlook = win32com.client.Dispatch(r'Outlook.Application')
except pywintypes.com_error as ex:
...

if Outlook:
    ns = Outlook.getNamespace(r'MAPI')
    ns.AddStore(pst)
    pststore = None
    
    for store in ns.Stores:
        if store.GetRootFolder().Name == dest:
            pststore = store
            break

    ... #get mailItem information from external EML .....

    pstfld = pststore.GetRootFolder().Folders.Add("Sent")
    
    folderItems = pstfld.Items
    mailItem = folderItems.Add("IPM.Note")
    mailItem.Subject = ....
    mailItem.Recipients.Add(...)
    mailItem.Sender = ...
    mailItem.HTMLBody = ...

    mailItem.Save()

    .....

    ns.RemoveStore(pststore.GetRootFolder())

提前致谢!

编辑:

在发布问题后想出了一个临时解决方法,并进一步弄乱了代码。打电话给我我需要的结果mailItem.Move(pstfld)mailItem.Save()MSG 文件被添加到 PST 文件中。

4

0 回答 0