如何将共享邮箱(收件箱)电子邮件移动到特定文件夹

时间:2019-09-23 12:44:51

标签: vba outlook outlook-vba

我有一个Outlook脚本,该脚本可以检查共享邮箱(收件箱)中的特定主题电子邮件,并在excel中记录电子邮件正文数据(尚未添加代码),并且应移至MIAL文件夹,但是我收到错误消息“变量未定义”,同时将电子邮件移至MIAL文件夹。

文件夹(MIAL)是我手动创建的,但是当我编写代码以将电子邮件移动到默认文件夹(如“草稿”或“已发送文件夹”)时,它的工作原理就可以了。

Option Explicit
Public Sub Example()
    Dim olNs As Outlook.NameSpace
    Set olNs = Application.GetNamespace("MAPI")

    Dim Recip As Outlook.Recipient
    Set Recip = olNs.CreateRecipient("Import-BOM@email.com") 'update email

    Dim SharedInbox As Outlook.Folder

    Set SharedInbox = olNs.GetSharedDefaultFolder(Recip, _
                                         olFolderInbox) 'Inbox

    Dim Movefolder As Outlook.Folder
    Set Movefolder = olNs.GetSharedDefaultFolder(Recip, _
                                         olFolderMIAL) 'Folder

    Dim Item As Outlook.MailItem


    For Each Item In SharedInbox.Items
        'If (Item.subject = "TSP") Then
            Debug.Print Item.subject
            Item.Move Movefolder
        'End If
    Next

End Sub

Compile error: Variable not defined Outlook Shared mailbox Screen shot

2 个答案:

答案 0 :(得分:0)

有些特定的默认文件夹可以用与olFolderInbox类似的方式描述,用作快捷方式。

长期引用手工创建的文件夹。

引用与收件箱相同级别的文件夹的一种方法是,将文件夹树从该收件箱导航到邮箱,然后再次向下浏览。

Set Movefolder = SharedInbox.Parent.Folders("MIAL")

答案 1 :(得分:0)

移动文件夹应为

Dim Movefolder As Outlook.folder
Set Movefolder = SharedInbox.Folders("MIAL")