如何解决使用 Python 和 win32com 将 MailItem 添加到 PST
我无法将新邮件项添加到我动态创建的 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 文件中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。