㈠ 使用nodejs接收pop3協議的郵件
NodeJs 提供了SSL/TLS 這樣的安全連接協議庫,so 我們可以用這樣的協議與郵件伺服器通訊。要寫完一個完整的收郵件的工具還是需要一定的時間,流程大致如上面的流程圖了。
那麼什麼是SSL?什麼是TLS?
SSL(Secure Sockets Layer 安全套接層),及其繼任者傳輸層安全(Transport Layer Security,TLS)是為網路通信提供安全及數據完整性的一種安全協議。TLS與SSL在傳輸層對網路連接進行加密。
SSL協議位於TCP/IP協議與各種應用層協議之間,為數據通訊提供安全支持。SSL協議可分為兩層: SSL記錄協議(SSL Record Protocol):它建立在可靠的傳輸協議(如TCP)之上,為高層協議提供數據封裝、壓縮、加密等基本功能的支持。 SSL握手協議(SSL Handshake Protocol):它建立在SSL記錄協議之上,用於在實際的數據傳輸開始前,通訊雙方進行身份認證、協商加密演算法、交換加密密鑰等。
安全傳輸層協議(TLS)用於在兩個通信應用程序之間提供保密性和數據完整性。該協議由兩層組成: TLS 記錄協議(TLS Record)和 TLS 握手協議(TLS Handshake)。
TLS 的最大優勢就在於:TLS 是獨立於應用協議。高層協議可以透明地分布在 TLS 協議上面。然而,TLS 標准並沒有規定應用程序如何在 TLS 上增加安全性;它把如何啟動 TLS 握手協議以及如何解釋交換的認證證書的決定權留給協議的設計者和實施者來判斷。
可以看出為了郵件的安全性,採用SSL/TLS的通訊技術還是有必要的。廢話不說,看代碼:
首先引入庫 var tls = require('tls');
var options = {
host: 'pop.qq.com',
port: 995,
user: '[email protected]',
pass: 'XXXXXXXXXX'
}
var Socket = tls.connect(options.port, options.host, cb_connected);
//注冊事件-連接回調
Socket.on('connect', cb_connecting);
//注冊事件-伺服器返回數據處理
Socket.on('data', cb_Server_DataBack);
上面的cb_XXXX都是回調函數。至於埠和伺服器地址大家參看郵件服務提供商的幫助了,是不是很簡單,3行代碼。
剩餘的就是用戶的操作,輸入命令,執行,顯示操作結果即可。
利用socket將命令寫到服務端,like this : Socket.write("命令 \r\n"); 順帶一提命令以\r\n作為結束標記一定要寫。
pop3協議的通信是一問一答的模式,想要做批量命令操作的小夥伴就要動點腦了
作者:DrS6
鏈接:https://www.jianshu.com/p/a54823eb0dbd
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。