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