2015-12-15 4 views

Répondre

0

Vous pouvez utiliser les services Web Exchange. You will need to download the API. Cela nécessitera que l'utilisateur qui exécute le script ait l'autorisation d'accéder à la boîte aux lettres en question et que vous connaissiez l'objet de l'e-mail que vous recherchez.

Import-Module -Name "C:\Program Files\Microsoft\Exchange\Web Services\Microsoft.Exchange.WebServices.dll" 

$exchService = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010) 
$exchService.AutodiscoverUrl("[email protected]",{$true}) 

$Mailbox = New-Object Microsoft.Exchange.WebServices.Data.Mailbox("[email protected]") 
$Inbox = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($exchservice,[Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox) 

$MessageView = New-Object Microsoft.Exchange.WebServices.Data.ItemView(100) #Find Max 100 Items 

$SerachFilter1 = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+IsEqualTo([Microsoft.Exchange.WebServices.Data.EmailMessageSchema]::Subject,"Test Subject") 
$SerachFilter2 = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+IsEqualTo([Microsoft.Exchange.WebServices.Data.EmailMessageSchema]::IsRead, $false) 
$SearchFilterCollection = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+SearchFilterCollection([Microsoft.Exchange.WebServices.Data.LogicalOperator]::And) 
$SearchFilterCollection.Add($SerachFilter1) 
$SearchFilterCollection.Add($SerachFilter2) 

If($Messages.TotalCount > 0){ 

    #Do something.... 
}