什麼是 SMTP
SMTP (Simple Mail Transfer Protocol) : 電子郵件從客戶機傳輸到服務器或從某一個服務器傳輸到另一個服務器使用的傳輸協議。 SMTP 是請求/響應協議,命令和響應都是基於 ASCII 文本,並以 CR 和 LF 符結束。響應包括一個表示返回狀態的三位數字代碼。SMTP 在 TCP 協議 25 端口監聽連接請求。
SMTP (Simple Mail Transfer Protocol) : 電子郵件從客戶機傳輸到服務器或從某一個服務器傳輸到另一個服務器使用的傳輸協議。 SMTP 是請求/響應協議,命令和響應都是基於 ASCII 文本,並以 CR 和 LF 符結束。響應包括一個表示返回狀態的三位數字代碼。SMTP 在 TCP 協議 25 端口監聽連接請求。
什麼是 ESMTP
ESMTP (Extended SMTP),顧名思義,擴展 SMTP 就是對標準 SMTP 協議進行的擴展。它與 SMTP 服務的區別僅僅是,使用 SMTP 發信不需要驗證用戶帳戶,而用 ESMTP 發信時, 服務器會要求用戶提供用戶名和密碼以便驗證身份。驗證之後的郵件發送過程與 SMTP 方式沒有兩樣。
ESMTP (Extended SMTP),顧名思義,擴展 SMTP 就是對標準 SMTP 協議進行的擴展。它與 SMTP 服務的區別僅僅是,使用 SMTP 發信不需要驗證用戶帳戶,而用 ESMTP 發信時, 服務器會要求用戶提供用戶名和密碼以便驗證身份。驗證之後的郵件發送過程與 SMTP 方式沒有兩樣。
SMTP 命令
SMTP 命令包括:
HELO 向服務器標識用戶身份。發送者能欺騙,說謊,但一般情況下服務器都能檢測到。
EHLO 向服務器標識用戶身份。發送者能欺騙,說謊,但一般情況下服務器都能檢測到。
MAIL FROM 命令中指定的地址是發件人地址
RCPT TO 標識單個的郵件接收人;可有多個 RCPT TO;常在 MAIL 命令後面。
DATA 在單個或多個 RCPT 命令後,表示所有的郵件接收人已標識,並初始化數據傳輸,以 CRLF.CRLF 結束
VRFY 用於驗證指定的用戶/郵箱是否存在;由於安全方面的原因,服務器常禁止此命令
EXPN 驗證給定的郵箱列表是否存在,擴充郵箱列表,也常被禁用
HELP 查詢服務器支持什麼命令
NOOP 無操作,服務器應響應 OK
RSET 重置會話,當前傳輸被取消
QUIT 結束會話
連接 Winmail Server 使用 SMTP 命令發送郵件
例如:安裝 Winmail 的郵件服務器IP是192.168.0.1 (藍色字體內容由客戶端輸入,紅色字體內容是服務返回的)
SMTP 命令包括:
HELO 向服務器標識用戶身份。發送者能欺騙,說謊,但一般情況下服務器都能檢測到。
EHLO 向服務器標識用戶身份。發送者能欺騙,說謊,但一般情況下服務器都能檢測到。
MAIL FROM 命令中指定的地址是發件人地址
RCPT TO 標識單個的郵件接收人;可有多個 RCPT TO;常在 MAIL 命令後面。
DATA 在單個或多個 RCPT 命令後,表示所有的郵件接收人已標識,並初始化數據傳輸,以 CRLF.CRLF 結束
VRFY 用於驗證指定的用戶/郵箱是否存在;由於安全方面的原因,服務器常禁止此命令
EXPN 驗證給定的郵箱列表是否存在,擴充郵箱列表,也常被禁用
HELP 查詢服務器支持什麼命令
NOOP 無操作,服務器應響應 OK
RSET 重置會話,當前傳輸被取消
QUIT 結束會話
連接 Winmail Server 使用 SMTP 命令發送郵件
例如:安裝 Winmail 的郵件服務器IP是192.168.0.1 (藍色字體內容由客戶端輸入,紅色字體內容是服務返回的)
telnet 192.168.0.1 25 --------------------------------------- 使用 telnet 命令連接服務器 25 端口
Trying 192.168.0.1... --------------------------------------- 正在連接服務器 25 端口
Connected to 192.168.0.1. ----------------------------------- 連接服務器 25 端口成功
220 Winmail Mail Server ESMTP ready ------------------------- 顯示服務器的標識名稱 (Winmail 管理工具->高級設置->系統參數->基本參數中可更改)
helo cnu.com ------------------------------------------------ 向服務器標識用戶身份,發信不要認證,跳過下面幾步直接發送 mail from 命令
250 Winmail Mail Server
ehlo cnu.com ------------------------------------------------ ESMTP 命令,發信需要認證。
250-Winmail Mail Server
250-PIPELINING
250-AUTH=LOGIN PLAIN
250-AUTH LOGIN PLAIN
250-SIZE 20480000
250 8BITMIME
auth login ------------------------------------------------- 進行用戶身份認證
334 VXNlcm5hbWU6
Y29zdGFAYW1heGl0Lm5ldA== ----------------------------------- BASE64 加密後的用戶名
334 UGFzc3dvcmQ6
MTk4MjIxNA== ----------------------------------------------- BASE64 加密後的密碼
235 auth successfully -------------------------------------- 身份認證成功
(535 auth failure ------------------------------------------ 身份認證失敗)
發到本系統中域名下的賬戶可跳過身份認證。
mail from: <[email protected]> ------------------------------ mail from 地址 [email protected]
250 ok ----------------------------------------------------- 命令執行成功
rcpt to: <[email protected]> -------------------------------- 遞送給地址 [email protected]
250 ok ----------------------------------------------------- 命令執行成功
data ------------------------------------------------------- 數據傳輸初始化
354 go ahead ----------------------------------------------- 開始傳輸數據
From: [email protected]
To: [email protected]
Date: Mon, 25 Oct 2004 14:24:27 +0800
Subject: test mail
Hi, test2
This is a test mail, you don't reply it.
.
------------------------------------------------------------ 數據內容,包括BASE64加密後的郵件內容, 以 CRLF.CRLF 結束數據傳輸
250 ok message accepted for delivery ----------------------- 命令執行成功
quit ------------------------------------------------------- 結束會話
221 Winmail Mail Server
Connection closed by foreign host .------------------------- 斷開連接
Trying 192.168.0.1... --------------------------------------- 正在連接服務器 25 端口
Connected to 192.168.0.1. ----------------------------------- 連接服務器 25 端口成功
220 Winmail Mail Server ESMTP ready ------------------------- 顯示服務器的標識名稱 (Winmail 管理工具->高級設置->系統參數->基本參數中可更改)
helo cnu.com ------------------------------------------------ 向服務器標識用戶身份,發信不要認證,跳過下面幾步直接發送 mail from 命令
250 Winmail Mail Server
ehlo cnu.com ------------------------------------------------ ESMTP 命令,發信需要認證。
250-Winmail Mail Server
250-PIPELINING
250-AUTH=LOGIN PLAIN
250-AUTH LOGIN PLAIN
250-SIZE 20480000
250 8BITMIME
auth login ------------------------------------------------- 進行用戶身份認證
334 VXNlcm5hbWU6
Y29zdGFAYW1heGl0Lm5ldA== ----------------------------------- BASE64 加密後的用戶名
334 UGFzc3dvcmQ6
MTk4MjIxNA== ----------------------------------------------- BASE64 加密後的密碼
235 auth successfully -------------------------------------- 身份認證成功
(535 auth failure ------------------------------------------ 身份認證失敗)
發到本系統中域名下的賬戶可跳過身份認證。
mail from: <[email protected]> ------------------------------ mail from 地址 [email protected]
250 ok ----------------------------------------------------- 命令執行成功
rcpt to: <[email protected]> -------------------------------- 遞送給地址 [email protected]
250 ok ----------------------------------------------------- 命令執行成功
data ------------------------------------------------------- 數據傳輸初始化
354 go ahead ----------------------------------------------- 開始傳輸數據
From: [email protected]
To: [email protected]
Date: Mon, 25 Oct 2004 14:24:27 +0800
Subject: test mail
Hi, test2
This is a test mail, you don't reply it.
.
------------------------------------------------------------ 數據內容,包括BASE64加密後的郵件內容, 以 CRLF.CRLF 結束數據傳輸
250 ok message accepted for delivery ----------------------- 命令執行成功
quit ------------------------------------------------------- 結束會話
221 Winmail Mail Server
Connection closed by foreign host .------------------------- 斷開連接