$submitActionTypeTemplate = "{A082C3F9-D90F-4825-8A38-8D2BE7653FC0}"
$formsRoot = "master:/sitecore/Forms"

$results = New-Object System.Collections.ArrayList

$forms = Get-ChildItem -Path $formsRoot -Recurse |
    Where-Object { $_.TemplateName -eq "Form" }

foreach ($form in $forms) {   
    $actions = Get-ChildItem -Path $form.ItemPath -Recurse |
        Where-Object { $_.TemplateName -eq "Submit Action Definition" }

    foreach ($action in $actions) {

        if ($action["Submit Action"] -ne $submitActionTypeTemplate) {
            continue
        }

        $parameters = $action["Parameters"]

        if ([string]::IsNullOrWhiteSpace($parameters)) {
            continue
        }
        
        try {
            $paramsObj = $parameters | ConvertFrom-Json
        }
        catch {
            Write-Host "Invalid JSON in Parameters for item: $($action.ItemPath)"
            continue
        }
        
        $null = $results.Add([PSCustomObject]@{
            FormName   = $form.DisplayName
            FormID     = $form.ID
            ActionName = $action.DisplayName
            To         = $paramsObj.to
            From       = $paramsObj.from
            Subject    = $paramsObj.subject
            Path       = $action.ItemPath
        })
    }
}

if ($results.Count -gt 0) {
    $results | Show-ListView
}
else {
    Write-Host "No Send Email actions found."
}