1

收件箱

....|___文件夹1

.............|___文件夹2

我有在收件箱下搜索文件夹的代码,但我无法理解如何在文件夹下搜索文件夹的某些字段。我需要做某种递归吗?

$olFolderInbox = 6
$outlook = new-object -com outlook.application;
$ns = $outlook.GetNameSpace("MAPI");
$inbox = $ns.GetDefaultFolder($olFolderInbox)

$Folder1 = $inbox.Folders | where-object { $_.name -eq "Folder1" }      
$Folder1Mail = $UTSFolder.items | Select-Object -Property Subject, ReceivedTime, Body

然后,我可以将 input.txt 用于我正在查找的信息列表,并将其与该收件箱中的每个项目进行比较。

$Inputs = Get-Content input.txt

Foreach ($Input in $Inputs){
    Foreach ($Mail in $Folder1Mail){
        if ($Mail.Body -like "*$Input*") { 
            Write-Host "Match found!" 
        }
    }
}

我找到了一个脚本,可以抓取并列出所有文件夹和子文件夹,但它不像如何引用它们那么明确。 http://gallery.technet.microsoft.com/office/b1295e6f-6d16-4df4-b644-f3c7e4031a69

目前正在阅读 Windows PowerShell In Action,因为我厌倦了弗兰肯斯坦的购物脚本。

谢谢!

4

1 回答 1

3

你需要使用MAPIFolder.Folders集合:VB风格:

set Folder = inbox.Folders.Item("folder1").Folder.Item("Folder2")
于 2013-02-02T06:45:34.723 回答