亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

VB.NET驗證郵件地址的合法性實現代碼

2024-07-10 13:25:02
字體:
來源:轉載
供稿:網友
一、提出問題
  現在,對于用戶在Web頁面上或電話中給出的Email地址,我們越來越不敢肯定它是否真的有效。在今天這個垃圾郵件泛濫成災的年代,人們完全有理由舍不得輕易透露Email地址。
  
  另一方面,對于通過正規途徑得到的郵件地址,當我們將它用于合法的目的時,也常常要為郵件地址是否有效而煩惱,用戶可能有意或無意地寫錯地址,也可能由于長時間不訪問而導致郵箱失效。對于少量的郵件地址,也許可以手工驗證其合法性,例如發送測試email;但是,當郵件地址的數量達到數萬甚至更多時,手工驗證就不可能了,必須用專門的工具或自己編寫程序自動執行驗證。
  
  常規的驗證方法只從email地址的格式判斷其合法性,例如檢查它是否包含“@”和“.”符號。顯然,這種檢查是不充分的,郵件地址格式正確并不證明它一定有效。由于這個原因,一些網站采取了用email發送密碼、特殊資源的URL等辦法,或者要求用戶回復email,以此確保email地址的有效性。但是,這些辦法不見得任何時候都有效,例如,你可能不是從自己的網站上收集用戶email,而是通過第三者獲得。
  
  考慮到這些原因,驗證email地址合法性最根本的辦法是查詢郵件服務器。本文將給出完成這一任務的完整VB.NET代碼。
  
  二、郵件服務器之合法性
  對于任何郵件地址,判斷其合法性的第一步當然是看看它的格式是否正確,例如是否包含“@”和“.”符號,這方面的資料很多,甚至還有現成的控件,所以本文不再贅述。我們的任務從判斷郵件地址的域是否合法開始,例如對于abc@sina.com.cn這個地址,首先判斷sina.com.cn的郵件服務器是否有效。
  
  每一個域有一個MX記錄,即郵件交換器(Mail Exchanger)記錄,它指向該域內處理email的服務器,我們只要查詢DNS服務器即可獲得該信息。Windows本身帶來的nslookup命令非常適合于完成該任務,例如,要查找sina.com.cn的郵件服務器,只需執行nslookup -type=mx sina.com.cn,其中-type=MX表示要查找MX記錄,輸出結果如圖一所示。Windows的nslookup命令要安裝了TCP/IP協議后才可用,詳細說明可參見Windows幫助。
    

VB.NET驗證郵件地址的合法性實現代碼


  下面的GetMailServer函數封裝了調用Windows nslookup命令的操作,根據參數中指定的域名返回郵件服務器。
  
  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
  
  三、郵件地址之合法性
  只要郵件地址中指定的域合法,我們就可以連接郵件服務器,試著發送一個email。如果郵件服務器回答說該用戶非法或不存在,表明郵件地址無效。這一步的主要操作包括創建一個連接郵件服務器的Socket,然后按照SMTP郵件傳輸協議的要求與服務器通信,完成郵件發送操作。關于SMTP協議的詳細說明,有興趣的讀者可參見SMTP規范(RFC 821):。
  
  下面CheckEmail函數的輸入參數是一個郵件地址,函數的返回值表示該地址是否合法。該函數有兩個數值可隨意調整:在發送郵件的過程中,我們要向對方的郵件服務器提供一個合法的域名以表明自己的身份,這里選擇的是sina.com.cn;根據網絡和對方郵件服務器的忙閑程度,響應時間也會發生變化,這里選擇的等待時間是3秒。當網絡或對方服務器非常忙時,減小等待時間會增加測試失敗的可能性。
  
  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 = "
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91国内揄拍国内精品对白| 日韩精品视频在线观看免费| 91精品视频播放| 久热精品视频在线| 欧美日韩国产精品一区二区三区四区| 亚洲aaa激情| 久久精品91久久香蕉加勒比| 成人精品视频99在线观看免费| 日韩理论片久久| 国产亚洲精品美女| 久久久久久久91| 91精品国产高清久久久久久91| 日韩中文字幕网| 91中文字幕在线观看| 欧美激情网友自拍| 视频一区视频二区国产精品| 国产精品日韩欧美综合| 国产免费一区二区三区香蕉精| 国产精品一区二区久久精品| 精品色蜜蜜精品视频在线观看| 91精品国产免费久久久久久| 国产精品一区电影| 中文字幕精品影院| 亚洲综合日韩中文字幕v在线| 欧美一区三区三区高中清蜜桃| 午夜精品在线观看| 日韩av在线不卡| 午夜精品www| 亚洲国产成人爱av在线播放| 日韩大片在线观看视频| 欧美另类69精品久久久久9999| 国产精品免费久久久| 91久久夜色精品国产网站| 97视频在线免费观看| 亚洲欧洲日产国码av系列天堂| 一本久久综合亚洲鲁鲁| 国产成人综合一区二区三区| 97超碰国产精品女人人人爽| 精品综合久久久久久97| 中国china体内裑精亚洲片| 永久免费精品影视网站| 国产欧美精品久久久| 97在线免费视频| 97在线视频国产| 亚洲视频在线免费观看| 国产在线观看91精品一区| 丝袜一区二区三区| 欧美在线xxx| 欧美精品videosex性欧美| 97视频在线观看免费| 97人人做人人爱| 最近2019年手机中文字幕| www.日韩欧美| 亚洲久久久久久久久久久| 亚洲电影av在线| 视频在线观看一区二区| 亚洲人成绝费网站色www| 日韩成人xxxx| 国产亚洲综合久久| 亚洲黄页网在线观看| 成人情趣片在线观看免费| 欧美日韩国产丝袜美女| 中文字幕精品一区久久久久| 欧美性猛交xxxx乱大交3| 国产日产欧美精品| 国产精品网站入口| 日韩精品视频免费在线观看| 亚洲精品国产精品久久清纯直播| 黄色成人在线播放| 国产精品狠色婷| 欧美成年人视频| 国产日韩在线看| 精品福利一区二区| 91精品国产色综合久久不卡98口| 国产v综合v亚洲欧美久久| 91人人爽人人爽人人精88v| 98视频在线噜噜噜国产| 97视频国产在线| 欧美特黄级在线| 国产精品美女久久久免费| 久久精品电影一区二区| 亚洲精品久久久久中文字幕二区| 懂色aⅴ精品一区二区三区蜜月| 久久久久久久97| 久久精品一本久久99精品| 亚洲男人av电影| 亚洲成人av片在线观看| 亚洲91精品在线| 中文字幕日韩高清| 国产免费一区视频观看免费| 色播久久人人爽人人爽人人片视av| 久久久国产精品视频| 久久久久久国产精品| 国产在线视频一区| 亚洲人成自拍网站| 亚洲美女动态图120秒| 亚洲欧美国产va在线影院| 中文字幕少妇一区二区三区| 午夜精品久久久久久99热软件| 北条麻妃99精品青青久久| 亚洲一区美女视频在线观看免费| 国产精品一区二区三区毛片淫片| 欧美国产日韩精品| 欧美成人性色生活仑片| 久久天天躁狠狠躁老女人| 亚洲毛茸茸少妇高潮呻吟| 欧美最猛性xxxxx免费| 久久久亚洲国产| 久久99国产综合精品女同| 在线播放国产一区二区三区| 亚洲欧美在线x视频| 国内成人精品视频| 日韩欧美亚洲一二三区| 欧美一级视频免费在线观看| 国产综合视频在线观看| 日韩视频―中文字幕| 宅男66日本亚洲欧美视频| 亚洲第一色中文字幕| 久久久久中文字幕| 亚洲精品videossex少妇| 亚洲国产精品成人va在线观看| 国产在线精品播放| 日本精品一区二区三区在线| 亚洲成人av在线播放| 成人黄色大片在线免费观看| 4438全国成人免费| 欧美精品国产精品日韩精品| 国产成人一区二区在线| 神马久久桃色视频| 精品国产一区二区三区久久狼黑人| 97视频在线观看视频免费视频| 欧洲美女7788成人免费视频| 亚洲精品av在线播放| 欧美一级片一区| 国产精品久久久久国产a级| 国产一区二区三区在线观看视频| 欧美一级在线亚洲天堂| 日韩黄色高清视频| 久久久精品国产亚洲| 久久久久久噜噜噜久久久精品| 这里只有精品在线播放| 久久激情视频免费观看| 姬川优奈aav一区二区| www亚洲欧美| 91精品久久久久久久久中文字幕| 欧美剧在线观看| 亚洲国产精品成人va在线观看| 欧美性开放视频| 亚洲网站在线播放| 久久av在线看| 日韩欧美在线观看视频| 亚洲精品国产欧美| 大伊人狠狠躁夜夜躁av一区| 亚洲精品久久久久久久久| 在线视频欧美日韩精品| 亚洲乱码国产乱码精品精天堂| 久久亚洲电影天堂| 亚洲日韩中文字幕在线播放| 国产成人一区二区三区小说| 欧美日韩成人网| 国产亚洲精品激情久久| 亚洲国产日韩欧美在线动漫| 中文字幕日韩av综合精品| 91黑丝在线观看|