public/New-Smtp4DevContainer.ps1

<#
.SYNOPSIS
    Creates or recreates a new container with smtp4dev
.DESCRIPTION
    Creates a new container based on the latest smtp4dev image
.PARAMETER Reset
    Removes all the Cache from your local machine before recreating a new smtp4dev container
.EXAMPLE
    New-Smtp4DevContainer
.EXAMPLE
    New-Smtp4DevContainer -Reset
#>

function New-Smtp4DevContainer {
    [CmdletBinding()]
    param(
        [switch]$Reset
    )
    process {
     
        Remove-Smtp4DevContainer
        Write-Verbose "Pull Container"
        $null = docker pull rnwood/smtp4dev 
        if ($Reset) {
            Write-Verbose "Remove Data dir '$smtp4devDataFolder'"
            remove-item $smtp4devDataFolder -Force -Recurse
        }
        Write-Verbose "Create Data dir '$smtp4devDataFolder' if not exists"
        $null = mkdir $smtp4devDataFolder -ErrorAction SilentlyContinue
   
        #docker run -d -p 3000:80 -p 2525:25 --name smtp4dev -v $smtp4devDataFolder:c:/smtp4dev rnwood/smtp4dev
         
        Write-Verbose "Create Container"
        $null = docker run -d -p 3000:80 -p 2525:25 --name smtp4dev -v C:\ProgramData\smtp4dev:C:\smtp4dev rnwood/smtp4dev 
    }
}