internal/functions/Get-MForgeMailDefault.ps1
function Get-MForgeMailDefault { <# .SYNOPSIS Determines the mail parameters configurable for MailForge from the provided parameters. .DESCRIPTION This function checks which parameters for mail sending in Initialize-MForgeMailDefault are configurable and whether they were passed in the calling context. The found values are collected in a hashtable and returned. .PARAMETER CurrentPSBoundParameters The parameters passed from the calling context (equivalent to $PSBoundParameters). .EXAMPLE $defaults = Get-MForgeMailDefault -CurrentPSBoundParameters $PSBoundParameters Returns a hashtable with all configured mail parameters. #> [CmdletBinding()] param ( $CurrentPSBoundParameters ) # List of configurable parameters from Initialize-MForgeMailDefault $configurableParams = @( 'Credential', 'SMTPServer', 'Port', 'From', 'RecipientList', 'CCList', 'BCCList', 'UseSecureConnectionIfAvailable', 'Subject' ) $result = @{} $overRideParams = $CurrentPSBoundParameters | ConvertTo-PSFHashtable -Include $configurableParams foreach ($param in $configurableParams) { $default = (Get-PSFConfigValue -FullName "MailForge.MailKitDefaults.$param" -ErrorAction SilentlyContinue) if ($default -ne $null) { $result[$param] = $default } } Write-PSFMessage "Defaults from Config: $($result | ConvertTo-Json -Compress)" if ($overRideParams) { Write-PSFMessage "Override Params from Call: $($overRideParams | ConvertTo-Json -Compress)" foreach ($param in $configurableParams) { if ($overRideParams.ContainsKey($param)) { $result[$param] = $overRideParams[$param] } } } Write-PSFMessage "Final Mail Params: $($result | ConvertTo-Json -Compress)" return $result } |