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....
}