Encontre todos os emails na caixa de entrada do Outlook que são "não entregues" com o powershell

1

Eu preciso consultar minha caixa de entrada com o powershell de forma recursiva para todos os "retornadores de e-mail não entregues" ...

Eu tenho problemas com a parte recursiva ...

Este é o script que eu executei:

$outlook = new-object -com Outlook.Application
$ns = $olApp.GetNamespace("MAPI")
$mb = $namespace.Folders | ?{$_.name -match "mailbox"}   
$folder1 = $mb.Folders | ?{$_.name -match "folder1"}   
$folder1.Folders | %{$_.name}  

$folder1.items | foreach {
if($_.subject -match "undelivered") {...}
}

No entanto, isso não lista recursivamente todos os itens.

    
por user11010 23.07.2009 / 12:57

1 resposta

1

Aqui está um pequeno script que deve ajudá-lo. Ele percorre todas as pastas em uma caixa de correio e exibe seu caminho. Você pode atualizar o trabalho realizado na seção recursiva para verificar os itens em cada pasta conforme ela passa por eles.

$outlook = New-Object -Com Outlook.Application
$mapi = $outlook.GetNamespace('MAPI')
$mailboxRoot = $mapi.GetDefaultFolder([Microsoft.Office.Interop.Outlook.OlDefaultFolders]::olFolderInbox).Parent
$walkFolderScriptBlock = {
    param(
        $currentFolder
    )
    foreach ($item in $currentFolder.Folders) {
        $item.FolderPath
        & $walkFolderScriptBlock $item
    }
}
& $walkFolderScriptBlock $mailboxRoot
    
por 23.07.2009 / 16:47