Public/Set-FileEMailConfig.ps1

<#
    .SYNOPSIS
    Reads the email configuration from an XML file and persists in a script level variable

    .DESCRIPTION
    Reads the email configuration from an XML file in the CliXml format.

    .INPUTS
    None. You cannot pipe objects to Set-FileEmailConfig.

    .OUTPUTS
    None.

    .PARAMETER Path
    The path to the CliXMl file. Defaults to "email-config.xml"
#>

function Set-FileEmailConfig {

    [CmdletBinding()]
    [OutputType([System.Void])]
    param(
        [Parameter(Mandatory = $false, Position = 0, ValueFromPipeline)]
        [String]
        $Path = "email-config.xml"
    )

    begin {
        Write-Verbose "[$($MyInvocation.MyCommand.Name)] Function started"
    }

    end {
        Write-Verbose "[$($MyInvocation.MyCommand.Name)] Complete"
    }

    process {
        Write-Debug "[$($MyInvocation.MyCommand.Name)] PSBoundParameters: $($PSBoundParameters | Out-String)"
        Set-Variable -Name __emailconfig -Scope Script -Value (Import-CliXml -Path $Path)
    }
}