VBScript Outlook.Folder 对象
最后修改于 2025 年 4 月 9 日
VBScript 中的 Outlook.Folder
对象代表 Microsoft Outlook 层次结构中的一个文件夹。它是用于自动化的 Outlook 对象模型的一部分。文件夹可以包含邮件项、联系人、日历条目或其他文件夹。此对象提供了访问和管理文件夹内容的方法。
Outlook.Folder
支持与 Outlook 数据进行程序化交互。它支持诸如访问项、创建子文件夹和管理文件夹属性之类的操作。本教程将通过实际示例涵盖 Outlook.Folder
,以演示其在自动化脚本中的用法。
Outlook.Folder 对象概述
Outlook.Folder
对象是通过 Outlook 应用程序对象层次结构获得的。它代表 Outlook 命名空间中的任何文件夹,包括默认文件夹和自定义文件夹。关键属性包括 Name
、Items
和 Folders
集合。
重要方法包括 CopyHere
、MoveTo
和 Delete
。该对象支持用于监视文件夹更改的事件。理解此对象有助于有效自动化 Outlook 数据管理任务。
访问默认收件箱文件夹
此示例演示了如何访问 Outlook 中的默认收件箱文件夹。它展示了如何导航 Outlook 对象层次结构以到达收件箱。然后,脚本将显示有关该文件夹的基本信息。
Set outlookApp = CreateObject("Outlook.Application") Set namespace = outlookApp.GetNamespace("MAPI") Set inbox = namespace.GetDefaultFolder(6) ' 6 = olFolderInbox WScript.Echo "Inbox Name: " & inbox.Name WScript.Echo "Item Count: " & inbox.Items.Count Set inbox = Nothing Set namespace = Nothing Set outlookApp = Nothing
该脚本创建了一个 Outlook 应用程序对象,并获取了 MAPI 命名空间。GetDefaultFolder(6)
用于检索收件箱文件夹。将显示文件夹的名称和项数。完成后务必释放对象以释放资源。
列出文件夹的子文件夹
此示例显示了如何枚举给定 Outlook 文件夹的所有子文件夹。它演示了如何访问 Folders
集合属性。将显示每个子文件夹的名称和项数。
Set outlookApp = CreateObject("Outlook.Application") Set namespace = outlookApp.GetNamespace("MAPI") Set inbox = namespace.GetDefaultFolder(6) ' Inbox For Each subfolder In inbox.Folders WScript.Echo "Subfolder: " & subfolder.Name WScript.Echo " Items: " & subfolder.Items.Count Next Set inbox = Nothing Set namespace = Nothing Set outlookApp = Nothing
该脚本访问收件箱文件夹的 Folders
集合。它循环遍历每个子文件夹,显示其名称和项数。此技术适用于 Outlook 层次结构中任何具有子文件夹的文件夹。
创建新的子文件夹
此示例演示了如何在现有 Outlook 文件夹中创建新的子文件夹。它展示了 Folders.Add
方法的用法。该脚本在收件箱中创建了一个名为“已处理”的子文件夹。
Set outlookApp = CreateObject("Outlook.Application") Set namespace = outlookApp.GetNamespace("MAPI") Set inbox = namespace.GetDefaultFolder(6) ' Inbox Set newFolder = inbox.Folders.Add("Processed") WScript.Echo "Created folder: " & newFolder.Name Set newFolder = Nothing Set inbox = Nothing Set namespace = Nothing Set outlookApp = Nothing
该脚本将一个名为“已处理”的新文件夹添加到收件箱。Add
方法返回新创建的 Folder
对象。对于文件夹已存在的情况,应添加错误处理。
在文件夹之间移动电子邮件
此示例演示了如何使用 MoveTo
方法在文件夹之间移动电子邮件项。它展示了如何在收件箱中查找特定电子邮件并将其移动到另一个文件夹。该脚本将未读电子邮件移动到“待处理”文件夹。
Set outlookApp = CreateObject("Outlook.Application") Set namespace = outlookApp.GetNamespace("MAPI") Set inbox = namespace.GetDefaultFolder(6) ' Inbox ' Get or create target folder On Error Resume Next Set targetFolder = inbox.Folders("To Process") If targetFolder Is Nothing Then Set targetFolder = inbox.Folders.Add("To Process") End If On Error GoTo 0 ' Move unread emails For Each item In inbox.Items If item.UnRead Then item.Move targetFolder End If Next WScript.Echo "Moved unread emails to: " & targetFolder.Name Set targetFolder = Nothing Set inbox = Nothing Set namespace = Nothing Set outlookApp = Nothing
该脚本首先确保目标文件夹存在。然后,它遍历所有收件箱项,将未读电子邮件移动到目标文件夹。在处理单个项时,使用 Move
方法而不是 MoveTo
。
处理文件夹项
此示例演示了如何处理文件夹中的所有项。它展示了如何访问电子邮件属性并基于这些属性执行操作。该脚本显示收件箱中每封电子邮件的发件人和主题。
Set outlookApp = CreateObject("Outlook.Application") Set namespace = outlookApp.GetNamespace("MAPI") Set inbox = namespace.GetDefaultFolder(6) ' Inbox For Each item In inbox.Items If item.Class = 43 Then ' olMail = 43 WScript.Echo "From: " & item.SenderName WScript.Echo "Subject: " & item.Subject WScript.Echo "Received: " & item.ReceivedTime WScript.Echo "---" End If Next Set inbox = Nothing Set namespace = Nothing Set outlookApp = Nothing
该脚本检查每个项的类,以确保它是一个邮件项(类 43)。对于每个邮件项,它将显示发件人、主题和接收时间。此模式可以扩展为根据各种标准处理项。
来源
在本文中,我们探讨了 VBScript 中的 Outlook.Folder
对象,涵盖了其用法和实际应用。从访问文件夹到处理项和管理文件夹结构,这些示例展示了强大的 Outlook 自动化功能。通过这些知识,您可以创建强大的脚本来管理 Outlook 数据。