从共享邮箱文件夹列出发件人(递归)

时间:2015-11-27 09:55:50

标签: powershell outlook

我正在尝试获取一个完整的发件人列表到我有权访问的特定共享邮箱(víaOutlook)。

到目前为止,我正在使用这个小而方便的脚本来选择所选的文件夹,因为我不知道如何调用我想要检查的文件夹作为参数(Param):

Add-type -assembly "Microsoft.Office.Interop.Outlook" | out-null
$olFolders = "Microsoft.Office.Interop.Outlook.olDefaultFolders" -as [type] 
$outlook = new-object -comobject outlook.application
$namespace = $outlook.GetNameSpace("MAPI")
$Inbox = $namespace.pickfolder()
$Inbox.items | Select-Object -Property SenderName

之后我根据我需要的信息(在这种情况下,发件人)过滤输出。

这迫使我选择文件夹MANUALLy,我只想将其设置为脚本的参数。

我应该如何将特定文件夹作为参数传递?。

提前致谢并致以最诚挚的问候。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您可以创建一个传递收件箱名称的功能

function GetSenders
{
    [CmdletBinding()]
    Param
    (
        [Parameter(Mandatory=$True)]
        [string]$Inbox
    )
    Begin
    {
        Add-type -assembly "Microsoft.Office.Interop.Outlook" | out-null
        $olFolders = "Microsoft.Office.Interop.Outlook.olDefaultFolders" -as [type] 
        $outlook = new-object -comobject outlook.application
    }
    Process
    {
        "Your Script here - What should happen with the Inbox?"
    }
    End
    {
        Write-Host "Script has Finished"
    }
}

加载此功能时,您只需编写GetSenders -Inbox "InboxName"

即可