Telnet Testing SMTP AUTH connections
Posted On 2008年4月1日 星期二 at 於 中午12:13 by Lani資料引用
Telnet Testing AUTH:http://qmail.jms1.net/test-auth.shtml
Find your authentication information
#perl -MMIME::Base64 -e 'print encode_base64("\000jms1\@jms1.net\000not.my.real.password")'
AGptczFAam1zMS5uZXQAbm90Lm15LnJlYWwucGFzc3dvcmQ=
Connecting to the server
% telnet 1.2.3.4 25
220 a.mx.jms1.net NO UCE ESMTP
ehlo testing
250-a.mx.jms1.net NO UCE
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-PIPELINING
250 8BITMIME
Sending the AUTH command
Assuming the server supports AUTH, we will send the actual AUTH command to try and authenticate.
AUTH PLAIN AGptczFAam1zMS5uZXQAbm90Lm15LnJlYWwucGFzc3dvcmQ=
235 ok, go ahead (#2.0.0)
If you see this message, you are authenticated. If you see this one instead...
AUTH PLAIN AGptczFAam1zMS5uZXQAbm90Lm15LnJlYWwucGFzc3dvcmQ=
535 authorization failed (#5.7.0)
Sending the message
Once you are authenticated, you may continue with a normal SMTP conversation and the server should accept any message from you, whether you are relaying to an outside domain or not. Even if you don't authenticate, the server will still accept messages from you- it just won't relay (it will act the same as if you had never entered an AUTH command at all.)
mail from:
250 ok
rcpt to:
250 ok
data
354 go ahead
From: John
To: Nobody
Subject: fnord
hail eris!
.
250 ok 1113954693 qp 29052
quit
221 a.mx.jms1.net NO UCE
資料引用
SMTP & POP Telnet Command:http://forum.shareget.com/t287532/
SMTP 命令簡介
什麼是 SMTP
SMTP (Simple Mail Transfer Protocol) : 電子郵件從客戶機傳輸到服務器或從某一個服務器傳輸到另一個服務器使用的傳輸協議。 SMTP 是請求/響應協議,命令和響應都是基於 ASCII 文本,並以 CR 和 LF 符結束。響應包括一個表示返回狀態的三位數字代碼。SMTP 在 TCP 協議 25 端口監聽連接請求。
什麼是 ESMTP
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 (藍色字體內容由客戶端輸入,紅色字體內容是服務返回的)
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:
250 ok ----------------------------------------------------- 命令執行成功
rcpt to:
250 ok ----------------------------------------------------- 命令執行成功
data ------------------------------------------------------- 數據傳輸初始化
354 go ahead ----------------------------------------------- 開始傳輸數據
From: test1@domain.com
To: test2@domain.com
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 .------------------------- 斷開連接
POP3 命令簡介
什麼是 POP3
POP3 (Post Office Protocol 3) 即郵局協議的第 3 個版本,它規定怎樣將個人計算機連接到 Internet 的郵件服務器和下載電子郵件的電子協議。它是因特網電子郵件的 第一個離線協議標準, POP3 允許用戶從服務器上把郵件存儲到本地主機(即自己的計算機)上,同時刪除保存在郵件服務器上的郵件,而POP3服務器則是遵循 POP3 協議的接收郵件服務器,用來接收電子郵件的。
POP3 命令
POP3 命令包括:
USER username 認證用戶名
PASS password 認證密碼認證,認證通過則狀態轉換
APOP name,digest 認可一種安全傳輸口令的辦法,執行成功導致狀態轉換,請參見 RFC 1321 。
STAT 處理請求 server 回送郵箱統計資料,如郵件數、 郵件總字節數
UIDL n 處理 server 返回用於該指定郵件的唯一標識, 如果沒有指定,返回所有的。
LIST n 處理 server 返回指定郵件的大小等
RETR n 處理 server 返回郵件的全部文本
DELE n 處理 server 標記刪除,QUIT 命令執行時才真正刪除
RSET 處理撤消所有的 DELE 命令
TOP n,m 處理 返回 n 號郵件的前 m 行內容,m 必須是自然數
NOOP 處理 server 返回一個肯定的響應
QUIT 希望結束會話。如果 server 處於"處理" 狀態,則現在進入"更新"狀態,刪除那些標記成刪除的郵件。如果 server 處於"認可"狀態,則結束會話時 server 不進入"更新"狀態 。
使用 telnet 連接 Winmail Server 收信
例如:安裝 Winmail 的郵件服務器 IP 是 192.168.0.1(藍色字體內容由客戶端輸入,紅色字體內容是服務返回的)
telnet 119.119.119.212 110 ----------------------------- 使用 telnet 命令連接服務器 110 端口
Trying 119.119.119.212... ------------------------------ 正在連接服務器 110 端口
Connected to 119.119.119.212. -------------------------- 連接服務器 110 端口成功
+OK Winmail Mail Server POP3 ready
user username ------------------------------------------ 輸入用戶名, username 為具體的用戶名
+OK ---------------------------------------------------- 執行命令成功
pass password ------------------------------------------ 輸入用戶密碼,password 為具體的密碼
+OK 2 messages ----------------------------------------- 密碼認證通過
(-ERR authorization failed ----------------------------- 密碼認證失敗)
stat --------------------------------------------------- 郵箱狀態
+OK 2 6415 --------------------------------------------- 2 為該信箱總郵件數,6415 為總字節數
list --------------------------------------------------- 列出每封郵件的字節數
+OK ---------------------------------------------------- 執行命令成功,開始顯示,左邊為郵件的序號,右邊為該郵件的大小
1 537 -------------------------------------------------- 第 1 封郵件,大小為 537 字節
2 5878 ------------------------------------------------- 第 2 封郵件,大小為 5878 字節
.
top 1 -------------------------------------------------- 接收第 1 封郵件
+OK ---------------------------------------------------- 接收成功, 返回第 1 封郵件頭
Return-Path:
Delivered-To: test2@look.com
Received: (winmail server invoked for smtp delivery); Mon, 25 Oct 2004 14:24:27 +0800
From: test1@look.com
To: test2@look.com
Date: Mon, 25 Oct 2004 14:24:27 +0800
Subject: test mail
.
retr 1 ------------------------------------------------- 接收第 1 封郵件
+OK ---------------------------------------------------- 接收成功, 返回第 1 封郵件全部內容
Return-Path:
Delivered-To: test2@look.com
Received: (winmail server invoked for smtp delivery); Mon, 25 Oct 2004 14:24:27 +0800
From: test1@look.com
To: test2@look.com
Date: Mon, 25 Oct 2004 14:24:27 +0800
Subject: test mail
Hi, test2
This is a test mail, you don't reply it.
.
dele 1 ------------------------------------------------- 刪除第 1 封郵件
+OK ---------------------------------------------------- 刪除成功
dele 2 ------------------------------------------------- 刪除第 2 封郵件
+OK ---------------------------------------------------- 刪除成功
quit --------------------------------------------------- 結束會話
+OK ---------------------------------------------------- 執行命令成功