Public/Get-WPSWMessage.ps1
<#
.SYNOPSIS Get Wilma messages .DESCRIPTION Get all wilma messages, messages from selected folder Inbox , Sent , Archive or Drafts. Or message content for specific message .EXAMPLE Get-WPSWMessage -Folder Inbox Gets messagelist from Inbox folder .EXAMPLE Get-WPSWMessage -Message_id 12345 Gets message content for message id 12345 #> function Get-WPSWMessage (){ [CmdletBinding()] param( #Message id [Parameter(Mandatory=$true,ParameterSetName='Message content')] [int] $Message_id, #Mailfolder [Parameter(Mandatory=$true,ParameterSetName='List messages')] [validateSet('Inbox','Sent','Archive','Drafts','All')] [string] $Folder ) begin{ Write-Verbose "Get-WPSWMessage - Begin" try { $WPSWSession = Get-WPSWCurrentSession } catch { Throw "Get-WPSWMessage - Cannot get Current WPSWSession." } $urimap =@{ 'Inbox' = '/messages/index_json' 'Sent' = '/messages/index_json/outbox' 'Archive' = '/messages/index_json/archive' 'Drafts' = '/messages/index_json/drafts' 'All' = '/messages/index_json/all' } } process { write-verbose "Get-WPSWMessage - Session : $WPSWSession" try { if ($Message_id){ $baseslug = "/messages/$Message_id" } else { $baseslug = $urimap[$Folder] } $targeturl = "$($WPSWSession.config.url)$baseslug" Write-Verbose "Targeturl: $targeturl" $result = Invoke-WebRequest -Method Get -Uri $targeturl -WebSession $WPSWSession.WilmaSession if($result.Statuscode -eq 200) { $result.Content } else { Write-Error "Get-WPSWMessage unexpected statuscode $($result.Statuscode)" } } catch{ $ErrorMessage = $_.Exception.Message Write-Error "Could not get messages. $ErrorMessage" } } } |