繁体   English   中英

如何从 Excel VBA 中的 Outlook 共享邮箱中提取已发送的项目?

[英]How to extract sent items from Outlook shared mailbox in Excel VBA?

我正在尝试使用 Excel 中的以下代码从 Outlook 中的组/共享邮箱中提取电子邮件。

olObjNs.GetSharedDefaultFolder(olShareName, olFolderInbox)

使用这个我可以提取收件箱项目。

https://msdn.microsoft.com/en-us/vba/outlook-vba/articles/namespace-getshareddefaultfolder-method-outlook说“..... 不能为此参数指定 olFolderSentMail。”

如何从共享邮箱中获取“已发送邮件”?

我试过olObjNs.GetDefaultFolder(olFolderSentMail)但它检索我的个人电子邮件“已发送项目”。

您可以找到共享存储,例如使用以下代码:

olObjNs.GetSharedDefaultFolder(olShareName, olFolderInbox).Store

然后使用 Outlook 对象模型中Store类的GetDefaultFolder方法。 它返回一个Folder对象,该对象表示存储中的默认文件夹,并且属于FolderType参数指定的类型。

此方法类似于NameSpace对象的GetDefaultFolder方法。 不同之处在于此方法获取与帐户关联的交付存储上的默认文件夹,而NameSpace.GetDefaultFolder返回当前配置文件的默认存储上的默认文件夹。

只需替换共享邮箱地址并假设它包含“已发送邮件”文件夹,它应该执行以下操作:

Set objNS = olApp.GetNamespace("MAPI")
Set objOwner = objNS.CreateRecipient("email@domain.com")
objOwner.Resolve
Set objOutlookFile = objNS.GetSharedDefaultFolder(objOwner, olFolderInbox).Parent.Folders("Sent Items")

对我来说效果很好;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM