本節提供 LMTP 對話範例,並提供該對話中顯示的說明。轉送器上的 LMTP 用戶端使用標準 LMTP 協定與後端儲存上的 LMTP 伺服器對話。但是,該協定要以特定方式使用。例如:
---> LHLO <--- 250 OK |
對 LHLO 訊息沒有採取任何動作。回覆始終是 250 OK。
---> MAIL FROM: address size=messageSizeInBytes <--- 250 OK |
對創建者位址沒有進行任何檢查或轉換。size= 參數以位元組形式表示將要傳送的郵件的大小。此郵件大小與協定中顯示的郵件大小相同。郵件大小不必完全相同,但實際郵件大小不能超出此大小。LMTP 伺服器將按此大小分配記憶體緩衝區以接收郵件。
---> RCPT TO: uid+folder@domain xquota=size,number xdflg=xxx <--- 250 OK |
在收到收件者位址時不對其進行檢查,但是會建立一個收件者清單以便以後使用。請注意,對於主要網域中的 uids,位址的 @domain 部分可省略,+folder 部分是可選的。這與 MTA 中的郵件儲存通道所使用的位址格式相同。
xquota= 參數提供的是使用者郵件的配額,包含最大總計大小和最大郵件數目。MTA 提供在對使用者執行 LDAP 查詢以進行位址轉換時所擷取的資訊。此資訊用於使郵件儲存中的配額資訊與目錄保持同步。獲取配額資訊不會影響其他效能。
xdflg= 參數指定一個數字,該數字將被解譯為位元欄位。這些位元控制遞送郵件的方式。例如,值為 2 的位元 (如果設定) 將確保郵件的遞送,即使使用者超出配額。(請注意,xdflg 為內部參數,其中的位元會變更或增加,恕不另行通知。我們不支援使用此擴充的其他用戶端與我們的伺服器配合使用,也不支援將我們的用戶端與某些其他伺服器以及此參數配合使用。)
此互動作業可以重複多次,每個收件者一次。
--->DATA ---> <the message text> --->. |
然後,LMTP 用戶端將傳送整個郵件 (填滿點的),與 SMTP 的操作相同。郵件傳送完畢後,每行上將僅留有一個點 (.)。如果超出郵件大小,LMTP 伺服器將傳送:
<--- 500 message too big
並結束連線。
假定郵件已正確接收,則 LMTP 伺服器會將 RCPT TO: 行中給定的每個收件者的狀態傳回 LMTP 用戶端。例如,如果郵件遞送成功,則回應是:
<--- 250 2.5.0 address OK
其中,address 與其在 RCPT TO: 行上的顯示完全相同。
對話既可以使用其他 MAIL FROM: 行重複,或使用以下互動作業結束:
---> quit <--- 221 OK |
表 15–1 顯示每個收件者的可能狀態代碼。 在此三欄表格中,第一欄顯示短代碼,第二欄顯示等效的長代碼,第三欄顯示狀態文字。2.x.x 狀態代碼是成功代碼,4.x.x 代碼是可重試錯誤,5.x.x 代碼是不可重試錯誤。
表 15–1 收件者的 LMTP 狀態代碼
短代碼 |
長代碼 |
狀態文字 |
---|---|---|
250 |
2.5.0 |
確定 |
420 |
4.2.0 |
電子信箱被鎖定 |
422 |
4.2.2 |
超出配額 |
420 |
4.2.0 |
電子信箱格式錯誤 |
420 |
4.2.0 |
不支援的電子信箱 |
430 |
4.3.0 |
IMAP IOERROR |
522 |
5.2.2 |
超出永久配額 |
523 |
5.2.3 |
郵件太大 |
511 |
5.1.1 |
電子信箱不存在 |
560 |
5.6.0 |
郵件包含無效字符 |
560 |
5.6.0 |
郵件包含 nl |
560 |
5.6.0 |
郵件標頭錯誤 |
560 |
5.6.0 |
郵件無空行 |
否則,需要變更電子信箱、原生 (和 UNIX) 以及檔案的遞送選項。這些規則的目標是產生將導致郵件透過相應的 LMTP 通道被傳送至後端伺服器的位址。所產生的位址是以下格式的來源路由位址:
@sourceroute:localpart@domain |