我尝试使用Excel中的以下代码从Outlook中的群组/共享邮箱中提取电子邮件。
olObjNs.GetSharedDefaultFolder(olShareName,olFolderInbox)
使用此我可以提取收件箱项目。从下面的文章, 的 https://msdn.microsoft.com/en-us/vba/outlook-vba/articles/namespace-getshareddefaultfolder-method-outlook
它说" ..... olFolderSentMail不能为此参数指定。" 如何获得'已发送的物品'来自共享邮箱。? 我尝试了 olObjNs.GetDefaultFolder(olFolderSentMail),但它检索了我的个人电子邮件'已发送的商品'。
非常感谢任何帮助。
答案 0 :(得分:0)
您可以找到共享存储,例如使用以下代码:
olObjNs.GetSharedDefaultFolder(olShareName, olFolderInbox).Store
然后使用Outlook对象模型中Store
类的GetDefaultFolder方法。它返回一个Folder
对象,该对象表示存储中的默认文件夹,并且是FolderType
参数指定的类型。
此方法类似于GetDefaultFolder
对象的NameSpace
方法。区别在于此方法获取与该帐户关联的传递存储上的默认文件夹,而NameSpace.GetDefaultFolder
返回当前配置文件的默认存储上的默认文件夹。
答案 1 :(得分:0)
只需替换共享邮箱地址,并在其中包含“已发送邮件”文件夹的情况下就应该这样做:
Set objNS = olApp.GetNamespace("MAPI")
Set objOwner = objNS.CreateRecipient("email@domain.com")
objOwner.Resolve
Set objOutlookFile = objNS.GetSharedDefaultFolder(objOwner, olFolderInbox).Parent.Folders("Sent Items")
对我来说很好;)