熱點推薦:
您现在的位置: 電腦知識網 >> 電腦常識 >> 正文

SMTP協議簡介

2013-11-11 14:04:00  來源: 電腦常識 

  SMTP被用來在因特網上傳遞電子郵件文件RFC規定了該協議的所有細節但是你只須記住下面的內容--該協議的基本命令和方法就行了
  
  協議的原理很簡單無非是一個客戶端計算機向服務器發送命令然後服務器向客戶端計算機返回一些信息客房端發送的命令以及服務器的回應都是字符串你並不需要特別的軟件就能讀出它們如果你仔細看過Winsock Terminal示例程序的源代碼你就會發現這一點現在讓我們用這個示例程序來向自己發一封電子郵件吧
  
  運行示例程序單擊Connect按鈕Connect to對話框中輸入你的電子郵件服務器的地址選擇SMTP選項最後按Connect按鈕如果連接成功Winsock控件會產生Connected事件在狀態欄中也可看到連接成功的信息在主文本窗口中你將看到從服務器返回的文本該文本包含一個三位數的代碼及描述例如
  
  nscinforu Sendmail / ready at Wed Apr :: +
   ESMTP spoken here
  
  不必太過留意這些描述因為這些描述可能會因服務器而異你只須要知道代碼所代表的意思就行了代碼表示成功建立連接服務器等待你的第一個命令
  
  向服務器傳遞的第一個命令是HELO 該命令包含一個參數即你的郵箱名
  
  HELO oleg
  
  注意: 在RFCHELO是一個可選擇性命令如果服務器不要求該命令的話你可以把它忽略掉
  
  如果命令成功服務器會返回一個代碼為的回應下一步用MAIL FROM命令告訴服務器你想發一封郵件該命令以發信人的郵件地址為參數
  
  MAIL FROM:
  
  發完命令後如果服務器返回一個代碼為回應你就可以向服務器發送RCPT TO命令了該命令以收信人地址為參數一看便知是告訴服務器你想將郵件發到收信人地址處
  
  RCPT TO:
  
  如果你想將郵件發給多個收件人的話你需要多次使用RCPT TO命令對每個命令服務器都會返回代碼為的回應
  
  現在你可以向服務器發送郵件正文了用DATA命令告訴服務器以下的內容為郵件正文在你從服務器收到代碼為的回應後你就可以發送郵件正文了郵件按行發送每行郵件以一個無回車的換行符結束(在VB中就是vbLf)示例程序知道何時使用換行符何時使用回車加換行符所以你只須按回車鍵就行了下面是一個例子
  
  Subject: My first email message
  
  First line of a message
  Second line
  
  
  注意上面最後一行的最後一個字符是一個小數點這是正文結束的標志用VB代碼表示就是vbLf & & vbCrLf 服務器收到這個標志後就會立即向你返回一個代碼為的回應以及該郵件的唯一ID號
  
   WAA Message accepted for delivery
  
  任務完成了你可以繼續發送下封郵件也可以斷開同服務器的連接如果要斷開同服務器的連接就用QUIT命令在這種情況下服務器會返回一個代碼為的回應並斷開連接
  
  QUIT
  
   nscinforu closing connection

From:http://tw.wingwit.com/Article/Common/201311/5074.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.