Private Function GetMailServer(ByVal sDomain As String) As String Dim info As New ProcessStartInfo() Dim ns As Process '調(diào)用Windows的nslookup命令,查找郵件服務(wù)器 info.UseShellExecute = False info.RedirectStandardInput = True info.RedirectStandardOutput = True info.FileName = "nslookup" info.CreateNoWindow = True '查找類型為MX。關(guān)于nslookup的詳細說明,請參見 'Windows幫助 info.Arguments = "-type=MX " + sDomain.ToUpper.Trim '啟動一個進行執(zhí)行Windows的nslookup命令() ns = Process.Start(info) Dim sout As StreamReader sout = ns.StandardOutput ' 利用正則表達式找出nslookup命令輸出結(jié)果中的郵件服務(wù)器信息 Dim reg As Regex = New Regex("mail exchanger = (?[^///s]+)") Dim mailserver As String Dim response As String = "" Do While (sout.Peek() > -1) response = sout.ReadLine() Dim amatch As Match = reg.Match(response) If (amatch.Success) Then mailserver = amatch.Groups("server").Value Exit Do End If Loop Return mailserver End Function
Public Function CheckEmail(ByVal sEmail As String) As Long
Dim oStream As NetworkStream Dim sFrom As String '發(fā)件人 Dim sTo As String '收件人 Dim sResponse As String '郵件服務(wù)器的應(yīng)答 Dim Remote_Addr As String '發(fā)件人的域名 Dim mserver As String '郵件服務(wù)器 Dim sText As String()
sTo = "<" + sEmail + ">" ' 從郵件地址分離出帳戶名和域名 sText = sEmail.Split(CType("@", Char)) ' 查找該域的郵件服務(wù)器 mserver = GetMailServer(sText(1)) 'mserver為空值表明查找郵件服務(wù)器失敗 If mserver = "" Then Return 4 Exit Function End If '發(fā)件人地址的域名必須合法 Remote_Addr = "sina.com.cn" sFrom = "