The script reads EML files from a directory and parses the header.from and adds the domain to the SPAM block list.
<# Stephen Spam Filter #> Connect-ExchangeOnlineShell $SpamFolder = "C:\Users\Administrator\Desktop\spam" $DomainsNeverBlock = @('gmail.com','outlook.com','aol.com','yahoo.com') $DefaultPolicy = Get-HostedContentFilterPolicy -Identity "Default" $regex = [regex]"header\.from=(.*);" Get-ChildItem -Path $SpamFolder -File | % { #Get-Content $_.FullName $from = (Get-Content $_.FullName | Select-String 'header.from') if($from -match $regex) { $domain = $Matches[1] if(-not $DomainsNeverBlock.Contains($domain)) { Write-Warning "Blocking Domain $domain" $DefaultPolicy | Set-HostedContentFilterPolicy -BlockedSenderDomains @{Add=$domain} -Confirm } } } #Sync Spam Policies $OnPremPolicy = Get-HostedContentFilterPolicy -Identity "Cloud quarantine for on prem users" $DefaultPolicy = Get-HostedContentFilterPolicy -Identity "Default" $OnPremPolicy | Set-HostedContentFilterPolicy -AllowedSenderDomains $DefaultPolicy.AllowedSenderDomains -AllowedSenders $DefaultPolicy.AllowedSenders -BlockedSenders $DefaultPolicy.BlockedSenders -BlockedSenderDomains $DefaultPolicy.BlockedSenderDomains