IsraelTorres icon

ProcessingMail.ps1

IsraelTorres | PRO | 03/14/12 04:53:04 PM UTC | 0 ⭐ | 365 👁️ | Never ⏰ | []
PowerShell |

1.78 KB

|

None

|

0 👍

/

0 👎

# original pastebin link: https://pastebin.com/w1F15Ptf
# related father link: http://www.reddit.com/r/PowerShell/comments/qvk0d/powershell_fork/
#Hash tables to store results of previous MX checks
$positiveMX = @{}
$negativeMX = @{}
 
#Adding this just so you have some visual for how far along you are.  It will slow it down slightly, so if you're
#purely worried about speed (or not running it interactively), remove this and the 4 $count lines in the loop
$count = 0
 
#Prep the CSV with headers
"domain,address" | set-content c:\temp\log.txt
 
#Read the file.  Using pipelining to avoid storing the entire thing in memory
get-content "C:\temp\email.txt" | foreach {
    $count++
    if ($count%500 -eq 0) {
        write-host $count -foregroundcolor black -backgroundcolor white
    }
 
 
    $domain= $_.split("@")[1]
 
    #If the MX record passed the test previously, go ahead and pass it through for writing
    if ($positiveMX.ContainsKey($domain)) {
        "$domain,$_"
    #Else, check to see if we found it before but disliked it, and if so do nothing
    } elseif ($negativeMX.ContainsKey($domain)) {
    #Else, haven't seen it before, need to do an MX Lookup
    } else {
        #Note that I changed this from '*yahoo.com' to '*yahoo*', since I tried using yahoo.com to test, and that ended with yahoodns.net.
        #If you know for sure that you want *yahoo.com, change it back
        $mx = nslookup -type=mx $domain | where {$_ -like '*yahoo*'}
 
        #Found it, adding it to the positive list and passing through for writing
        if($mx){
            "$domain,$_"
            $positiveMX.Add($domain,"")
        #Didn't find it, adding it to the bad list
        } else {
            $negativeMX.Add($domain,"")
        }
    }
} | add-content c:\temp\log.txt

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎