So my customer got banned from mailing hotmail and a few other microsoft spam protected domains. So what is the jig.
Lets start to examine the error message that we got:
SNT0-MC4-F31.Snt0.hotmail.com gave this error: SC-002 (SNT0-MC4-F31) Unfortunately, messages from 10.255.255.255 weren't sent. Please contact your Internet service provider since part of their network is on our block list. You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors.
ell this seems a nice error with a nice error code, so lets go to the troubleshooting page. There we find the following:
Mail rejected by Outlook for policy reasons. The mail server IP connecting to Outlook has exhibited namespace mining behavior. If you are not an email/network admin please contact your Email/Internet Service Provider for help.
So we now know why we were banned.. Someone did send a lot of mails to hotmail/outlook.com that didnt exist. So that helps a little but not really. So lets use Exchange to find if anybody sent any mails with many recipients the last few days.
$track = ForEach ($server in (Get-TransportServer)){
Get-MessageTrackingLog -ResultSize Unlimited -Start ((Get-Date).AddDays(-5)) -Server $server -EventID Send
}
Nice now we have all messages from the last few days in a nice variable.. So who many mails have been sent to more than 100 persons?
[PS] C:>$track | ? {$_.RecipientCount -gt 100}
EventId Source Sender Recipients MessageSubject
------- ------ ------ ---------- --------------
SEND SMTP automatic@someplace.example.co... {recipient1232@example.com, re... One of may legit mails.
SEND SMTP somejoe@example.com {recipient7322@example.com, re... Another legit mail
SEND SMTP anotherjoe@example.com {recipient6242@example.net, re... This one too is a legit mail
^C
Okey that didnt go as planed. So we need to see how many people were on each mail:
$track | ? {$_.RecipientCount -gt 10} | Format-Table -Auto Sender, RecipientCount
Sender RecipientCount
------ --------------
automatic@someplace.example.com 102
somejoe@example.com 203
anotherjoe@example.com 105
creep@example.com 100
moreaddresses@example.com 120
last@example.com 300
Looks like we found our creep that got us banned.. So just for sake of being immaculate, lets see just the ones with more than 100 and a hotmail recipient:
$track | ? {$_.RecipientCount -gt 10 -and $_.recipients -like '*@hotmail.*'} | Format-Table -Auto Sender, RecipientCount
Sender RecipientCount
------ --------------
automatic@someplace.example.com 102
last@example.com 300
So there we have it, problem solved. And for once it wasnt the creep, not even a feature creep.