掃描二維碼關注

首頁 APP開(kāi)發小(xiǎo)程序開(kāi)發 微信公衆号 網站建設 營銷推廣 經典案列 産品服務 關于我們

“學習(xí)不僅是掌握知識”

向書(shū)本學習(xí),還要向實踐學習(xí)、向生活學習(xí)。消化已有(yǒu)知識,
而且要力求有(yǒu)所發現、有(yǒu)所發明(míng)、有(yǒu)所創造

SMTP協議簡介

2019/3/5 11:48:38

SMTP協議簡介

SMTP被用(yòng)來在因特網上(shàng)傳遞電子郵件(jiàn)。文(wén)件(jiàn)RFC821規定了該協議的(de)所有(yǒu)細節。但(dàn)是你(nǐ)隻須記住下面的(de)内容--該協議的(de)基本命令和(hé)方法就行(xíng)了。
  協議的(de)原理(lǐ)很簡單。無非是一個(gè)客戶端計(jì)算機向服務器(qì)發送命令,然後服務器(qì)向客戶端計(jì)算機返回一些信息。客房端發送的(de)命令以及服務器(qì)的(de)回應都(dōu)是字符串,你(nǐ)并不需要特别的(de)軟件(jiàn)就能(néng)讀(dú)出它們。如(rú)果你(nǐ)仔細看過WinsockTerminal示例程序的(de)源代碼,你(nǐ)就會(huì)發現這一點。現在讓我們用(yòng)這個(gè)示例程序來向自己發一封電子郵件(jiàn)吧(ba)。

  運行(xíng)示例程序,單擊"Connect"按鈕,在"Connectto..."對話(huà)框中輸入你(nǐ)的(de)電子郵件(jiàn)服務器(qì)的(de)地(dì)址,選擇SMTP選項。最後按"Connect"按鈕。如(rú)果連接成功,Winsock控件(jiàn)會(huì)産生Connected事件(jiàn),在狀态欄中也(yě)可(kě)看到(dào)連接成功的(de)信息。在主文(wén)本窗口中你(nǐ)将看到(dào)從服務器(qì)返回的(de)文(wén)本。該文(wén)本包含一個(gè)三位數的(de)代碼及描述,例如(rú):

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

  不必太過留意這些描述。因爲這些描述可(kě)能(néng)會(huì)因服務器(qì)而異。你(nǐ)隻須要知道代碼所代表的(de)意思就行(xíng)了。代碼220表示成功建立連接,服務器(qì)等待你(nǐ)的(de)第一個(gè)命令。

  向服務器(qì)傳遞的(de)第一個(gè)命令是HELO.該命令包含一個(gè)參數,即你(nǐ)的(de)郵箱名。

  HELOoleg

  注意:在RFC821中,HELO是一個(gè)可(kě)選擇性命令,如(rú)果服務器(qì)不要求該命令的(de)話(huà),你(nǐ)可(kě)以把它忽略掉。

  如(rú)果命令成功,服務器(qì)會(huì)返回一個(gè)代碼爲250的(de)回應。下一步用(yòng)MAILFROM命令告訴服務器(qì)你(nǐ)想發一封郵件(jiàn)。該命令以發信人(rén)的(de)郵件(jiàn)地(dì)址爲參數。

  MAILFROM:oleg@vbip.com

  發完命令後,如(rú)果服務器(qì)返回一個(gè)代碼爲250回應,你(nǐ)就可(kě)以向服務器(qì)發送RCPTTO命令了。該命令以收信人(rén)地(dì)址爲參數,一看便知是告訴服務器(qì)你(nǐ)想将郵件(jiàn)發到(dào)收信人(rén)地(dì)址處。

  RCPTTO:somebody@domain.com

  如(rú)果你(nǐ)想将郵件(jiàn)發給多個(gè)收件(jiàn)人(rén)的(de)話(huà)。你(nǐ)需要多次使用(yòng)RCPTTO命令,對每個(gè)命令,服務器(qì)都(dōu)會(huì)返回代碼爲250的(de)回應。
  現在你(nǐ)可(kě)以向服務器(qì)發送郵件(jiàn)正文(wén)了。用(yòng)DATA命令告訴服務器(qì)以下的(de)内容爲郵件(jiàn)正文(wén)。在你(nǐ)從服務器(qì)收到(dào)代碼爲354的(de)回應後,你(nǐ)就可(kě)以發送郵件(jiàn)正文(wén)了。郵件(jiàn)按行(xíng)發送,每行(xíng)郵件(jiàn)以一個(gè)無回車(chē)的(de)換行(xíng)符結束(在VB中就是vbLf)示例程序知道何時使用(yòng)換行(xíng)符,何時使用(yòng)回車(chē)加換行(xíng)符。所以你(nǐ)隻須按回車(chē)鍵就行(xíng)了。下面是一個(gè)例子:

  Subject:Myfirste-mailmessage.

   Firstlineofamessage.
   Secondline.
   .

  注意上(shàng)面最後一行(xíng)的(de)最後一個(gè)字符是一個(gè)小(xiǎo)數點。這是正文(wén)結束的(de)标志。用(yòng)VB代碼表示就是vbLf&"."&vbCrLf.服務器(qì)收到(dào)這個(gè)标志後,就會(huì)立即向你(nǐ)返回一個(gè)代碼爲250的(de)回應以及該郵件(jiàn)的(de)唯一ID号。

  250WAA10568Messageacceptedfordelivery

  任務完成了,你(nǐ)可(kě)以繼續發送下封郵件(jiàn),也(yě)可(kě)以斷開(kāi)同服務器(qì)的(de)連接。如(rú)果要斷開(kāi)同服務器(qì)的(de)連接就用(yòng)QUIT命令。在這種情況下,服務器(qì)會(huì)返回一個(gè)代碼爲221的(de)回應并斷開(kāi)連接。

  QUIT

  221ns.cinfo.ruclosingconnection


深圳市南山區南山街(jiē)道南海(hǎi)大(dà)道西(xī)桂廟路(lù)北陽光(guāng)華藝大(dà)廈1棟4F、4G-04

咨詢電話(huà):136 8237 6272
大(dà)客戶咨詢:139 0290 5075
業(yè)務QQ:195006118
技術(shù)QQ:179981967

更多可(kě)以了解的(de)信息

客戶案列
新聞資訊
資質榮譽
團隊風采
項目進度查詢

售前QQ咨詢
QQ溝通 項目QQ溝通

精銳軟件(jiàn)

Copyright© 2018-2023 深圳市無窮大軟件技術有限公司 All Rights Reserved. 京ICP證000000号 公安備案号:粵公網安備44030502009460号