軟件課設要求做一個windows下的郵件管理客戶端,基本功能:收發郵件。。樓主渣渣一枚,沒經驗,只能苦逼地在黑暗中摸索摸索摸索摸索......了。今天了解了一下SMTP協議是個什么玩意,照着網上test了一遍Telnet遠程登錄SMTP服務器發郵件。對代理發郵件過程的理解算有一點點提高吧。
test過程:
1.確認電腦打開了Telnet的功能,在控制面板->程序->程序和功能->打開或關閉windows功能,勾選Telnet客戶端。
2.進入cmd命令行,輸入Telnet
3.輸入 o smtp.qq.com 25 #此處o是open的縮寫,以QQ郵箱為例,25表示SMTP服務器時刻監聽的端口號,登錄SMTP服務器
4.輸入HELO hiboy #HELO表示向服務器打招呼,后面內容不限
5.服務器返回 250 smtp.qq.com #表示認可了你的身份
6.輸入auth login #告訴服務器你要登錄
7.服務器返回334 VXN1cm5hbWU6 #這一串字符串表示“Username:”這是base64碼
8.輸入賬戶11111111@qq.com對應的base64碼
9.輸入密碼對應的base64碼
10.服務器返回235 Authentication successful #表明身份認證成功可以發郵件了
11.輸入mail from:<11111111@qq.com> #表明發信人地址
12.服務器返回250 mail ok
13.輸入rcpt to:<8888888@qq.com> #表明收件人地址
14.服務器返回250 mail ok
15.輸入data開始輸入郵件內容
16.from:xxx #表示發件人
17.to:xxxx #表示收件人,可以有多個
18.subject:xxxxxxx #輸入郵件主題,需要空格一行才開始輸入19正文
19.you are a good boy
20.回車以"."結束
21.服務器返回250 mail ok queued as #表示放入隊列中了等待發送,這時候收件人就能收到了。樓主實驗的時候收到了但是被騰訊給屏蔽了,看不到內容。
22.quit斷開連接
23.221 Bye
SMTP的基本命令集:
HELO 向服務器標識用戶身份
MAIL 初始化郵件傳輸mail from: <xxx>
RCPT 標識單個的郵件接收人;常在MAIL命令后面可有多個rcpt to: <xxx>
DATA 在單個或多個RCPT命令后,表示所有的郵件接收人已標識,初始化數據傳 輸,以.結束
NOOP 無操作,服務器應響應OK
RSET 重置會話,當前傳輸被取消
QUIT 結束會話
狀態碼說明:
220 : 服務就緒
250 :請求郵件動作正確,完成(HELO,MAIL FROM,RCPT TO,QUIT 指令執行成功會返回此信息)
235 :認證通過
221 :正在處理
354 :開始發送數據,結束以 .(DATA指令執行成功會返回此信息)
500 :語法錯誤,命令不能識別
550 :命令不能執行,郵箱無效
552 :中斷處理:用戶超出文件空間
了解這個過程后覺得寫代碼實現有點頭緒了有木有。