Public/Email/Get-EmailRecord.ps1
<#
Copyright © 2024 Integris. For internal company use only. All rights reserved. #> FUNCTION Get-EMailRecord { <# .SYNOPSIS Gets MX, SPF, DMARC, and DKIM records for the requested domain(s). .DESCRIPTION Gets MX, SPF, DMARC, and DKIM records for the requested domain(s). .PARAMETER Domain The domain(s) to get the MX, SPF, DMARC, and DKIM records of. .EXAMPLE Get-EMailRecords IntegrisIt.com,Microsoft.com #> param ( [Parameter(Mandatory)] [STRING[]]$Domain ) $Results = @() Write-IntegrisProgressBar -TotalCount 4 -CurrentCount 0 -Activity "Getting E-Mail Records" -Status "Getting MX Records" -ID 316172442 $Results += Get-MXRecord $Domain Write-IntegrisProgressBar -TotalCount 4 -CurrentCount 1 -Activity "Getting E-Mail Records" -Status "Getting SPF Records" -ID 316172442 $Results += Get-SPFRecord $Domain Write-IntegrisProgressBar -TotalCount 4 -CurrentCount 2 -Activity "Getting E-Mail Records" -Status "Getting DMARC Records" -ID 316172442 $Results += Get-DMARCRecord $Domain Write-IntegrisProgressBar -TotalCount 4 -CurrentCount 3 -Activity "Getting E-Mail Records" -Status "Getting DKIM Records" -ID 316172442 $Results += Get-DKIMRecord $Domain $Results2 = @() FOREACH ($Item in $Domain) { $Results2 += $Results | Where-Object { $_.Domain -eq $Item -and $_.Purpose -eq "MX" } $Results2 += $Results | Where-Object { $_.Domain -eq $Item -and $_.Purpose -eq "SPF" } $Results2 += $Results | Where-Object { $_.Domain -eq $Item -and $_.Purpose -eq "DMARC" } $Results2 += $Results | Where-Object { $_.Domain -eq $Item -and $_.Purpose -eq "DKIM" } } Write-IntegrisLogFile $Results | Select Domain, Name, Type, Purpose, Value, Preference Write-Progress -ID 316172442 -Completed -Activity "Getting E-Mail Records" RETURN $Results2 } |