我无法将新 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 文件中。