internal/functions/Method7.ps1
Function Method7 { <# .SYNOPSIS Method to list items in a specific folders in the user mailbox. .DESCRIPTION Method to list items in a specific folders in the user mailbox. .EXAMPLE PS C:\> Method7 Method to list items in a specific folders in the user mailbox. #> [CmdletBinding()] param( # Parameters ) $statusBarLabel.Text = "Running..." if ( $txtBoxFolderID.Text -ne "" ) { # Creating Filter variables $FolderID = new-object Microsoft.Exchange.WebServices.Data.FolderId($txtBoxFolderID.Text) $Folder = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($service,$FolderID) $StartDate = $FromDatePicker.Value $EndDate = $ToDatePicker.Value $MsgSubject = $txtBoxSubject.text [int]$i=0 # Combining Filters into a single Collection $filters = @() if ( $MsgSubject -ne "" ) { $Filter1 = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+ContainsSubstring([Microsoft.Exchange.WebServices.Data.EmailMessageSchema]::Subject,$MsgSubject, [Microsoft.Exchange.WebServices.Data.ContainmentMode]::ExactPhrase, [Microsoft.Exchange.WebServices.Data.ComparisonMode]::IgnoreCase) $filters += $Filter1 } if ( $StartDate -ne "" ) { $Filter2 = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+IsGreaterThanOrEqualTo([Microsoft.Exchange.WebServices.Data.ItemSchema]::DateTimeReceived,[DateTime]$StartDate) $filters += $Filter2 } if ( $EndDate -ne "" ) { $Filter3 = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+IsLessThanOrEqualTo([Microsoft.Exchange.WebServices.Data.ItemSchema]::DateTimeReceived,[DateTime]$EndDate) $filters += $Filter3 } $searchFilter = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+SearchFilterCollection([Microsoft.Exchange.WebServices.Data.LogicalOperator]::AND,$filters) if ( $filters.Length -eq 0 ) { $searchFilter = $Null } $ivItemView = New-Object Microsoft.Exchange.WebServices.Data.ItemView(250) $fiItems = $null $array = New-Object System.Collections.ArrayList do { $fiItems = $service.FindItems($Folder.Id, $searchFilter, $ivItemView) foreach ( $Item in $fiItems.Items ) { $i++ $output = $Item | Select-Object Subject, Sender, DateTimeReceived, Size $array.Add($output) } $ivItemView.Offset += $fiItems.Items.Count } while ( $fiItems.MoreAvailable -eq $true ) $dgResults.datasource = $array $dgResults.AutoResizeColumns() $dgResults.Visible = $True $txtBoxResults.Visible = $False $PremiseForm.refresh() $statusBarLabel.text = "Ready. Items found: $i" Write-PSFMessage -Level Output -Message "Task finished succesfully" -FunctionName "Method 7" -Target $email } else { [Microsoft.VisualBasic.Interaction]::MsgBox("FolderID textbox is empty. Check and try again",[Microsoft.VisualBasic.MsgBoxStyle]::Okonly,"Information Message") $statusBarLabel.text = "Process finished with warnings/errors" } } |