首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在共享邮箱上的两个文件夹之间移动电子邮件?

如何在共享邮箱上的两个文件夹之间移动电子邮件?
EN

Stack Overflow用户
提问于 2022-06-01 16:49:05
回答 1查看 94关注 0票数 0

我设法使用这个站点让代码在我的个人邮箱上工作。

当应用于共享邮箱时,它不起作用。

它适用于个人邮箱从收件箱移动到名为Test的收件箱子文件夹。

在共享邮箱上,我需要从共享邮箱收件箱移到另一个名为Complete的文件夹。这是共享邮箱中的一个文件夹,不是子文件夹。

代码语言:javascript
复制
Sub MailmoveAP()
          
    Dim olApp As Outlook.Application
    Dim objNS As Outlook.NameSpace
    Dim olFolder As Outlook.MAPIFolder
    Dim msg As Outlook.MailItem
    Dim InboxItem As Object

    Set olApp = Outlook.Application
    Set objNS = olApp.GetNamespace("MAPI")
    Set olFolder = objNS.GetSharedDefaultFolder(olFolderInbox)
    Set olFolder = olFolder.Folders("Test")

    For Each msg In ActiveExplorer.Selection
       msg.Move olFolder
    Next
            
End Sub
EN

回答 1

Stack Overflow用户

发布于 2022-06-02 20:49:58

NameSpace.GetSharedDefaultFolder方法需要两个参数,而不是一个像GetDefaultFolder那样的参数。此方法用于委托方案,其中一个用户为其一个或多个默认文件夹(例如,共享收件箱文件夹)向另一个用户委派了访问权限。例如:

代码语言:javascript
复制
Sub ResolveName() 
 Dim myNamespace As Outlook.NameSpace 
 Dim myRecipient As Outlook.Recipient 
 Dim CalendarFolder As Outlook.Folder 
 
 Set myNamespace = Application.GetNamespace("MAPI") 
 Set myRecipient = myNamespace.CreateRecipient("Eugene Astafiev") 
 
 myRecipient.Resolve 
 
 If myRecipient.Resolved Then 
   Call ShowCalendar(myNamespace, myRecipient)
 End If 
 
End Sub 
 
Sub ShowCalendar(myNamespace, myRecipient) 
 Dim CalendarFolder As Outlook.Folder 
 
 Set CalendarFolder = myNamespace.GetSharedDefaultFolder(myRecipient, olFolderCalendar) 
 CalendarFolder.Display 
End Sub

要获取Complete文件夹,如果它位于与Inbox相同的级别,您可以使用收件箱文件夹的Parent对象,然后获取一个子文件夹。查看如何在Outlook中枚举文件夹并找到所需的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72465461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档