當前位置:編程學習大全網 - 源碼下載 - 什麽是SMTP協議

什麽是SMTP協議

 SMTP被用來在因特網上傳遞電子郵件。文件RFC821規定了該協議的所有細節。但是妳只須記住下面的內容--該協議的基本命令和方法就行了。

協議的原理很簡單。無非是壹個客戶端計算機向服務器發送命令,然後服務器向客戶端計算機返回壹些信息。客房端發送的命令以及服務器的回應都是字符串,妳並不需要特別的軟件就能讀出它們。如果妳仔細看過WinsockTerminal示例程序的源代碼,妳就會發現這壹點。現在讓我們用這個示例程序來向自己發壹封電子郵件吧。

運行示例程序,單擊"Connect"按鈕,在"Connectto..."對話框中輸入妳的電子郵件服務器的地址,選擇SMTP選項。最後按"Connect"按鈕。如果連接成功,Winsock控件會產生Connected事件,在狀態欄中也可看到連接成功的信息。在主文本窗口中妳將看到從服務器返回的文本。該文本包含壹個三位數的代碼及描述,例如:

220-ns.cinfo.ruSendmail8.6.12/8.6.9readyatWed,22Apr199822:54:41+0300

220ESMTPspokenhere

不必太過留意這些描述。因為這些描述可能會因服務器而異。妳只須要知道代碼所代表的意思就行了。代碼220表示成功建立連接,服務器等待妳的第壹個命令。

向服務器傳遞的第壹個命令是HELO.該命令包含壹個參數,即妳的郵箱名。

HELOoleg

註意:在RFC821中,HELO是壹個可選擇性命令,如果服務器不要求該命令的話,妳可以把它忽略掉。

如果命令成功,服務器會返回壹個代碼為250的回應。下壹步用MAILFROM命令告訴服務器妳想發壹封郵件。該命令以發信人的郵件地址為參數。

MAILFROM:oleg@vbip.com

發完命令後,如果服務器返回壹個代碼為250回應,妳就可以向服務器發送RCPTTO命令了。該命令以收信人地址為參數,壹看便知是告訴服務器妳想將郵件發到收信人地址處。

RCPTTO:somebody@domain.com

如果妳想將郵件發給多個收件人的話。妳需要多次使用RCPTTO命令,對每個命令,服務器都會返回代碼為250的回應。

現在妳可以向服務器發送郵件正文了。用DATA命令告訴服務器以下的內容為郵件正文。在妳從服務器收到代碼為354的回應後,妳就可以發送郵件正文了。郵件按行發送,每行郵件以壹個無回車的換行符結束(在VB中就是vbLf)示例程序知道何時使用換行符,何時使用回車加換行符。所以妳只須按回車鍵就行了。下面是壹個例子:

Subject:Myfirste-mailmessage.

 Firstlineofamessage.

 Secondline.

 .

註意上面最後壹行的最後壹個字符是壹個小數點。這是正文結束的標誌。用VB代碼表示就是vbLf&"."&vbCrLf.服務器收到這個標誌後,就會立即向妳返回壹個代碼為250的回應以及該郵件的唯壹ID號。

250WAA10568Messageacceptedfordelivery

任務完成了,妳可以繼續發送下封郵件,也可以斷開同服務器的連接。如果要斷開同服務器的連接就用QUIT命令。在這種情況下,服務器會返回壹個代碼為221的回應並斷開連接。

QUIT

  • 上一篇:大家都有追cp的經歷,可以講壹下妳的哪些cp塌房了嗎?
  • 下一篇:Ddx選股源代碼
  • copyright 2024編程學習大全網