檢驗Email是否有效

2021-04-26 09:26:23 字數 1535 閱讀 7531

前段時間自己做乙個檢驗email是否有效的工具,通過幾天時間的查資料和學習,終於搞定了。主要就是登陸郵箱的smtp伺服器,查詢郵箱是否存在,在網上很多**了檢驗email有效性的文章,那裡就是通過smtp檢驗的,首先說一下使用telnet登陸smtp伺服器傳送郵件的過程:

1、連線smtp伺服器:telnet smtp.126.com 25

2、傳送hello命令: helo 126.com

4、傳送rcpt to命令,表示收件人郵箱,可以多次使用此命令:rcpt to:

5、傳送data命令,接著就是信件的內容,以「.」結束

6、傳送quit命令,結束連線。

上面的每個命令都以/r/n結束,這是smtp協議。但是如今大部分郵件伺服器都採用esmtp協議,防止亂髮郵件,esmtp也就比smtp多了驗證的步驟,在第2步與第3步之間加入驗證:

傳送auth login命令:auth login

接著傳送使用者名稱和密碼,使用者名稱和密碼都是base64編碼的,確認了使用者名稱和密碼後就可以傳送mail from了。

這樣我們就可以通過rcpt to返回的資訊判斷使用者是否存在了。

我們可以利用nslookup命令查詢到郵箱伺服器的mx伺服器位址,如nslookup -type=mx 126.com

這樣就會顯示出126郵箱的mx伺服器「126.com mx preference = 50, mail exchanger = 126.mxmail.netease.com」其中126.mxmail.netease.com就是位址了。下面是互動的過程

$ telnet 126.mxmail.netease.com 25

trying 220.181.15.200...

connected to 126.mxmail.netease.com.

s:220 126.com anti-spam gt for coremail system (126com[20081010])

c:helo localhost

s:250 ok

c:mail from://這個可以隨便寫,只要不是126的就行

s:250 mail ok

c:rcpt to:

s:250 mail ok                                         //250,表示此郵箱存在

c:rcpt to:

s:550 user not found: [email protected]              //550,使用者不存在

c:quit

s:221 bye

connection closed by foreign host.

這樣如果我們要檢測某個郵箱是否有效,我們只要登陸此郵箱的mx伺服器,然後檢測就ok了。

如果要程式設計實現的話,只需建立socket連線,然後傳送相應的命令,檢查接受到的是不是250資訊就可以判斷郵箱的有效性,這裡要注意每次命令都要加上/r/n結束,另外還有乙個重點就是要獲取mx位址,這個就根據各個開發語言和工具,仁者見仁智者見智,不同的工具實現也不一樣的。我用vc和c#實現過,就是執行控制台命令,然後獲得命令的標準輸出。

Python3檢驗pdf檔案是否有效

利用pypdf2的pdffilereader模組開啟pdf檔案,如果不拋異常,就認為此pdf檔案有效。有時開啟並不丟擲異常,但是有這種警告 userwarning startxref on same line as offset pdf.py 1680 這種情況pdf多半也是壞的,可進一步通過頁數判...

spss常態檢驗 利用SPSS檢驗資料是否符合正態

正態分佈也叫常態分布,在我們後面說的很多東西都需要資料呈正態分佈。下面的圖就是正態分佈曲線,中間隆起,對稱向兩邊下降。下面我們來看一組資料,並檢驗 期初平均分 資料是否呈正態分佈 此資料已在spss裡輸入好 在spss裡執行 分析 描述統計 頻數統計表 選單見下圖,英文版的可以找到相應位置 然後彈出...

全面測試Email的有效性

1.2.3.檔名 class cemail 4.5.用 法 i ail new cemail 6.7.if m verify jerry mail.jerry.com.tw 0 return true 僅檢查語法 8.else return false 9.10.11.else return fla...