My first PowerShell Module: Icewolf.EXO.SpamAnalyze

Hallo zusammen,

Es braucht einiges an Know-How um herauszufinden, weshalb ein Mail im Junk-E-Mail Folder landet oder gar in die Quarantäne verschoben wurde.

Als erstes macht man ein MessageTrace

$MT = Get-MessageTrace -StartDate (get-date).AddDays(-10) -EndDate (get-date) -SenderAddress andres.bohren@gmail.com
$MT | Format-Table Received, SenderAddress, RecipientAddress, Subject, Status, MessageTraceID

$MTD = Get-MessageTraceDetail -MessageTraceId 5b018c12-df4a-4300-df60-08d90bca587d -RecipientAddress a.bohren@icewolf.ch -StartDate (get-date).AddDays(-10) -EndDate (get-date)
$MTD

Schauen wir uns das "Spam" Event ein bisschen genauer an. Im Property "Data" gibt es eine XML Struktur

$Spam = $MTD | where {$_.Event -eq "Spam"}
$Spam | fl

Diese XML Struktur laden wir in ein XML Objekt und lassen uns das anzeigen

[xml]$xmlS = $Spam.Data
$xmls.root.MEP | fl

Install-Module PowershellGet -Force

Publish-Module -Name <moduleName> -NuGetApiKey <apiKey>

Danach ist das PowerShell Modul in der PowerShell Gallery publiziert. Hier kann auch der Source Code eingesehen werden.

https://www.powershellgallery.com/packages/Icewolf.EXO.SpamAnalyze/

Prüfen ob das Modul schon installiert ist

Get-Module Icewolf* -ListAvailable

Die PowerShell "Als Administrator" starten und dann das Modul installieren

Find-Module Icewolf.EXO.SpamAnalyze
Install-Module Icewolf.EXO.SpamAnalyze
Modul laden
Import-Module Icewolf.EXO.SpamAnalyze
Comandlets vom Modul anzeigen
Get-Command -Module Icewolf.EXO.SpamAnalyze
Hilfe anzeigen
Get-Help InvokeSpamAnalyze -Full

Das Comandlet nutzen

Invoke-SpamAnalyze -RecipientAddress <RecipientEmailAddress> -SenderAddress <SenderEmailAddress>

Nun muss man die MessageTraceID vom gewünschten Email kopieren und einfügen.

Nun werden Details vom Email angezeigt. Auch ob sich Absenderemailadresse oder Absender Domain in der persönlichen SafeSender / BlockedSender Liste befinden oder in der AntispamPolicy von Exchange Online Protection (EOP).

Zusätzlich

Grüsse
Andres Bohren