TestMsImapConnection.psm1
using module .\TestMsImap.psm1 using module .\UserInputAssistant.psm1 function Test-MsImapConnection () { <# .SYNOPSIS Test Microsot Exchange's IMAP service's connectivity with a wizard. .DESCRIPTION This method guide user to test Microsot Exchange's IMAP service's connectivity. .INPUTS None. You cannot pipe objects to Test-MsImapConnection. .OUTPUTS None. It will display the result in text. .EXAMPLE PS>Test-MsImapConnection #> $assistant = Get-UserInputAssistant $logPath = $assistant.GetLogPath() $azureCloudInstance = $assistant.GetAzureCloudInstance() $mailbox = $assistant.GetMailbox() $authType = $assistant.GetAuthType() if ($authType -eq 1) { # OAuth $flowType = $assistant.GetFlowType() $tenantId = $assistant.GetTenantId() $clientId = $assistant.GetClientId() if ($flowType -eq 1) { # as user return Test-MsImap -Mailbox $mailbox -TenantId $tenantId -ClientId $clientId -AzureCloudInstance $azureCloudInstance -LogPath $logPath } else { # as app $clientSecret = $assistant.GetClientSecret() return Test-MsImap -Mailbox $mailbox -TenantId $tenantId -ClientId $clientId -ClientSecret $clientSecret -AzureCloudInstance $azureCloudInstance -LogPath $logPath } } else { # basic auth $loginUser = $assistant.GetLoginUser() $pass = $assistant.GetPassword() Test-MsImap -Mailbox $mailbox -Pass $pass -LoginUser $loginUser -AzureCloudInstance $azureCloudInstance -LogPath $logPath } } |