Exchange/Office 365 add domains from EML files to SPAM block list

The script reads EML files from a directory and parses the header.from and adds the domain to the SPAM block list.


Spam Filter

$SpamFolder = "C:\Users\Administrator\Desktop\spam"

$DomainsNeverBlock = @('','','','')

$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

Exchange 2007 Mail Contact going to Gmail and Calendar Integration

A mail contact in Exchange 2007 that points to a Gmail account and the complaint was that they did not get proper calendar invites, they got a text email with the dreaded winmail.dat

The fix is to edit the mail contact in Exchange and change the Rich Text Format to Never for the contact.

Create exchange accounts from Perl

I have not been able to create MS Exchange 2007 accounts from perl, the only method i have found that works is to call the PowerShell command to create the account. Below is an example.

system qq[PowerShell.exe -PSConsoleFile "C:\\Program Files\\Microsoft\\Exchange Server\\Bin\\ExShell.psc1" -Command ". {Enable-Mailbox -Identity fitsuny\\] . $adUser->samaccountname . qq[ -Alias ] . $adUser->samaccountname . qq[ -Database $database] . $value. qq[}"];