Private Function GetMailServer(ByVal sDomain As String) As String Dim info As New ProcessStartInfo() Dim ns As Process '調用Windows的nslookup命令,查找郵件服務器 info.UseShellExecute = False info.RedirectStandardInput = True info.RedirectStandardOutput = True info.FileName = "nslookup" info.CreateNoWindow = True '查找類型為MX。關于nslookup的詳細說明,請參見 'Windows幫助 info.Arguments = "-type=MX " + sDomain.ToUpper.Trim '啟動一個進行執行Windows的nslookup命令() ns = Process.Start(info) Dim sout As StreamReader sout = ns.StandardOutput ' 利用正則表達式找出nslookup命令輸出結果中的郵件服務器信息 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 '發件人 Dim sTo As String '收件人 Dim sResponse As String '郵件服務器的應答 Dim Remote_Addr As String '發件人的域名 Dim mserver As String '郵件服務器 Dim sText As String()
sTo = "<" + sEmail + ">" ' 從郵件地址分離出帳戶名和域名 sText = sEmail.Split(CType("@", Char)) ' 查找該域的郵件服務器 mserver = GetMailServer(sText(1)) 'mserver為空值表明查找郵件服務器失敗 If mserver = "" Then Return 4 Exit Function End If '發件人地址的域名必須合法 Remote_Addr = "sina.com.cn" sFrom = "