向动态创建的PST文件添加新邮件时遇到问题。我可以自己创建邮件项目,并将它们保存到我计算机上的某个位置。但是,当我尝试将邮件项目保存到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.Save()
之后调用mailItem.Move(pstfld)
得到了我需要的结果;MSG文件将添加到PST文件中
目前没有回答
相关问题 更多 >
编程相关推荐