Sun Java System Messaging Server 6 2005Q4 管理指南

配置 SMTP 通道

根據安裝類型,在安裝時,Messaging Server 提供數種 SMTP 通道 (請參見下表)。這些通道實作經由 TCP/IP 的 SMTP。多重執行緒 TCP SMTP 通道包括在派送程式控制下執行的多重執行緒 SMTP 伺服器。外寄 SMTP 郵件由通道程式 tcp_smtp_client 處理,且依需要在工作控制器控制下執行。

表 12–20 SMTP 通道

通道 

定義 

tcp_local

接收來自遠端 SMTP 主機的內送郵件。根據您是否使用智慧主機/防火牆配置,將外寄郵件直接傳送至遠端 SMTP 主機,或將外寄郵件傳送至智慧主機/防火牆系統。 

tcp_intranet

接收和傳送企業內部網路中的郵件。 

tcp_auth

用做 tcp_local 的切換通道;認證使用者切換至 tcp_auth 通道,以避免轉送封鎖功能的限制。

tcp_submit

在預留的提交連接埠 587 上接受通常來自使用者代理程式的郵件提交作業 (請參閱 RFC 2476)。 

tcp_tas

由執行統一郵件傳送的站點使用的 IA 特殊通道。 

透過增加或移除本節所述的通道關鍵字,您可以修改這些通道的定義或者建立新的通道。此外,可能使用某選項檔案來控制 TCP/IP 通道的各種特性。此類選項檔案必須儲存在 MTA 配置目錄 (msg_svr_base/config) 中,並且命名為 x_option,其中 x 是通道名稱。如需詳細資訊,請參閱「Sun Java System Messaging Server 6 2005Q4 Administration Reference」中的「Option File」

本節分為以下子節:

配置 SMTP 通道選項

TCP/IP 通道選項檔案可控制 TCP/IP 通道的各種特性。通道選項檔案必須儲存在 MTA 配置目錄中,並且命名為 x_option (其中 x 是通道的名稱)。例如,/msg_svr_base/config/tcp_local_option

選項檔案包含一個或多個關鍵字及關聯值。例如,可以在選項檔案中包含 DISABLE_EXPAND 關鍵字,並將其值設為 1,以停用伺服器上的郵件收信人清單擴充。

其他選項檔案關鍵字可讓您執行以下作業:

如需有關所有通道選項關鍵字和語法的資訊,請參閱「Sun Java System Messaging Server 6 2005Q4 Administration Reference」

SMTP 指令和協定支援

可以指定 SMTP 通道是否支援某些 SMTP 指令 (例如 EHLO、ETRN、EXPN 和 VRFY)。還可以指定該通道是否支援 DNS 網域驗證、該通道接受哪些字元作為行終止符號等。本節描述以下內容:

表 12–21 概括本小節所說明的關鍵字。

表 12–21 SMTP 指令和協定關鍵字

通道關鍵字 

說明 

協定選取和行終止符號

指定通道是否支援 SMTP 協定,並指定接受做為行終止符號的字元序列

smtp

支援 SMTP 協定。關鍵字 smtp 對於所有 SMTP 通道都具有強制性。(此關鍵字相當於 smtp_crorlf。)

nosmtp

不支援 SMTP 協定。這是預設。 

smtp_cr

接受以換行鍵 (CR) 終止但後面沒有換行 (LF) 的行。 

smtp_crlf

行必須以換行鍵 (CR) 換行 (LF) 序列終止。 

smtp_lf

接受以換行 (LF) 終止但前面沒有的行 (CR)。 

smtp_crorlf

行能以換行鍵 (CR)、換行 (LF) 序列或完整的 CRLF 終止。 

EHLO 關鍵字

指定通道處理 EHLO 指令的方式

ehlo

對初始連線使用 SMTP EHLO 指令。 

checkehlo

檢查 SMTP 回應大標題以確定是使用 EHLO 還是 HELO。 

noehlo

不使用 EHLO 指令。 

ETRN 關鍵字

指定通道處理 ETRN 指令 (請求處理佇列) 的方式

allowetrn

接受 ETRN 指令。 

blocketrn

封鎖 ETRN 指令。 

domainetrn

僅接受那些 ETRN 指定網域的指令。 

silentetrn

接受 ETRN 指令但不回應通道資訊。 

sendetrn

傳送 ETRN 指令。 

nosendetrn

不傳送 ETRN 指令。 

VRFY 關鍵字

指定通道處理 VRFY 指令的方式

domainvrfy

使用完整的位址發出 VRFY 指令。 

localvrfy

使用本機位址發出 VRFY 指令。 

novrfy

不發出 VRFY 指令。 

vrfyallow

對 VRFY 指令提供資訊回應。 

vrfydefault

根據通道的 HIDE_VERIFY 選項設定,提供 VRFY 指令的預設回應。 

vrfyhide

對 SMTP VRFY 指令提供模糊回應。 

EXPN 關鍵字

指定通道處理 EXPN 關鍵字的方式 

expnallow

允許 EXPN,即使已在 SMTP 伺服器層級使用 DISABLE_EXPAND SMTP 通道選項將其停用。

expndisable

無條件停用 EXPN

expndefault

如果 SMTP 伺服器設定為允許 EXPN,則允許。(預設)

DNS 網域驗證

指定通道是否執行 DNS 網域驗證

mailfromdnsverify

驗證用於 MAIL FROM: 指令的網域是否存在於 DNS 中。

nomailfromdnsverify

不驗證用於 MAIL FROM: 指令的網域是否存在於 DNS 中。

字元集和八位元資料

指定通道處理八位元資料的方式 (注意:雖然這些關鍵字通常用於 SMTP 通道,但也可能與任何類型的通道相關。)

charset7

與 7 位元文字郵件關聯的預設字元集 

charset8

與 8 位元文字郵件關聯的預設字元集 

charsetesc

與包含退出字元的 7 位元文字關聯的預設字元集 

eightbit

通道支援八位元字元。 

eightnegotiate

如有可能,通道應協商使用八位元傳輸。 

eightstrict

通道應拒絕標頭包含非法八位元資料的郵件。 

sevenbit

通道不支援八位元字元;八位元字元必須經過編碼。 

協定串流

指定通道使用的協定串流之程度。

streaming

控制在與通道關聯的協定中使用的協定串流之程度。 

通道協定選取和行終止符號

關鍵字:smtpnosmtpsmtp_crlfsmtp_crsmtp_crorlfsmtp_lf

smtpnosmtp 關鍵字指定通道是否支援 SMTP 協定。smtp 關鍵字或其變化形式之一,對於所有 SMTP 通道都具有強制性。

關鍵字 smtp_crlfsmtp_crsmtp_crorlfsmtp_lf 可用於 SMTP 通道,指定 MTA 將接受做為行終止符號的字元序列。關鍵字 smtp_crlf 表示行必須以換行鍵 (CR) 換行 (LF) 序列終止。關鍵字 smtp_lfsmtp 表示接受前面沒有 CR 的 LF。最後,smtp_cr 表示接受後面沒有 LF 的 CR。這些選項僅影響內送郵件之處理。

由於 SMTP 標準需要 CRLF 以作為行終止符號,因此 MTA 始終會產生標準 CRLF 序列。各種 smtp 關鍵字僅控制 MTA 是否接受其他非標準的行終止符號。例如,如果要 MTA 僅接受完全合法的 SMTP 郵件並拒絕所有包含非標準行終止符號的郵件,則可以指定 smtp_crlf

EHLO 指令支援

關鍵字:ehlonoehlocheckehlo

SMTP 協定已延伸 (RFC 1869) 為允許協商其他指令。使用新的 EHLO 指令便可達此目的,該指令取代了 RFC 821 的 HELO 指令。延伸的 SMTP 伺服器透過提供其支援的延伸清單來回應 EHLO。未延伸的伺服器則會傳回不明的指令錯誤,然後用戶端會傳送舊的 HELO 指令。

退回策略通常可與延伸的以及未延伸的伺服器正常配合工作。但是如果伺服器未根據實作,則會發生問題。具體來說,曾經有某些不符合的伺服器在接收未知指令時中斷連線。

SMTP 用戶端會實作一種策略,如果任一伺服器在接收 EHLO 時中斷連線,SMTP 用戶端便會藉此策略嘗試重新連線並使用 HELO 。但是,如果遠端伺服器在接收 EHLO 時,不僅中斷連線,還處於問題狀態,則此策略可能無法奏效。

通道關鍵字 ehlonoehlocheckehlo 可用於處理此類情況。ehlo 關鍵字告知 MTA 在嘗試所有的初始連線時,使用 EHLO 指令。noehlo 關鍵字可完全停用 EHLO 指令。checkehlo 關鍵字測試由遠端 SMTP 伺服器傳回的回應大標題中有無字串「ESMTP」。如果發現此字串,則使用 EHLO;如果未發現,則使用 HELO。預設運作方式是在嘗試所有初始連線時使用 EHLO,除非大標題行包含字串「fire away」(在此情況下使用 HELO);請注意,由於此預設運作方式介於 ehlocheckehlo 關鍵字產生的運作方式之間,因此沒有對應於此預設運作方式的關鍵字。

ETRN 指令支援

關鍵字:allowetrnblocketrndisableetrndomainetrnsilentetrnsendetrnnosendetrnnovrfy

ETRN 指令在 RFC 1985 中定義,可提供 SMTP 服務的延伸,藉此,SMTP 用戶端與伺服器可以互動,使伺服器可以處理其要傳送至給定主機之郵件的佇列。

使用 ETRN,SMTP 用戶端可以請求遠端 SMTP 伺服器啟動對預定要傳送至 SMTP 用戶端的郵件佇列的處理。因此,ETRN 可提供一種實作遠端 SMTP 系統「輪詢」的方法,以便郵件內送至自己的系統。這對於彼此之間只有暫態連線的系統很有用,例如,作為其他站點之次要郵件交換 (MX) 主機而設定的站點與網際網路之間僅有撥接連線。透過啟用此指令,可允許遠端 (可能是撥接) 伺服器請求遞送它們的郵件。

SMTP 用戶端在 ETRN 指令行中指定郵件要傳送到的系統之名稱 (通常是 SMTP 用戶端系統自己的名稱)。如果遠端 SMTP 伺服器支援 ETRN 指令,它將觸發獨立程序的執行,以連線回已命名的系統,並為該系統傳送正等候傳送的所有郵件。

回應 ETRN 指令

allowetrnblocketrndomainetrnsilentetrn 關鍵字可控制傳送 SMTP 用戶端發出 ETRN 指令以請求 MTA 嘗試傳送 MTA 佇列中的郵件時 MTA 的回應。

依預設,MTA 將嘗試允許所有 ETRN 指令;亦即啟用 allowetrn 關鍵字。可以在通道定義中包含 blocketrn 關鍵字,從而指定 MTA 不允許 ETRN 指令。

可以包含 silentetrn 關鍵字,從而指定 MTA 允許所有 ETRN 指令,但不回應與網域相符的且 MTA 將嘗試執行的通道之名稱。domainetrn 關鍵字指定 MTA 僅接受用於指定網域的 ETRN 指令;它也會使 MTA 不回應網域相符的且 MTA 將嘗試執行的通道之名稱。

disableetrn 可完全停用對 ETRN 指令的支援;SMTP 伺服器不會將 ETRN 做為支援的指令進行通告。

傳送 ETRN 指令

sendetrnnosendetrn 通道關鍵字可控制 MTA 在開始 SMTP 連線時是否傳送 ETRN 指令。預設是 nosendetrn,表示 MTA 不傳送 ETRN 指令。如果遠端 SMTP 伺服器表示支援 ETRNsendetrn 關鍵字即會告知 MTA 傳送 ETRN 指令。sendetrn 關鍵字後面應加上請求其郵件接收傳送嘗試的系統之名稱。

VRFY 指令支援

關鍵字:domainvrfylocalvrfyvrfyallowvrfydefaultvrfyhide

VRFY 指令可讓 SMTP 用戶端傳送請求至 SMTP 伺服器,請求驗證該伺服器上特定使用者名稱的郵件。VRFY 指令在 RFC 821 中定義。

伺服器傳送回應指示該使用者是否位於本機、郵件是否將被轉寄等。250 回應指示使用者名稱位於本機,251 回應指示使用者名稱不在本機,但伺服器可轉寄該郵件。伺服器回應中包含電子信箱名稱。

傳送 VRFY 指令

一般情況下,沒有必要發出 VRFY 指令做為 SMTP 對話的一部分。SMTP RCPT TO 指令執行的功能應與 VRFY 所執行的功能相同,並傳回相應的錯誤。但是,有些伺服器可以接受 RCPT TO 中的任何位址 (並在以後退回),而這些伺服器會執行更廣泛的檢查來做為 VRFY 指令的一部分。

依預設,MTA 不傳送 VRFY 指令 (啟用 novrfy 關鍵字)。

如有必要,可在通道定義中包含 domainvrfylocalvrfy 關鍵字,從而將 MTA 配置為發出 SMTP VRFY 指令。關鍵字 domainvrfy 可導致發出 VRFY 指令,並包含完整的位址 (user@host) 做為該指令的引數。localvrfy 關鍵字可使 MTA 發出 VRFY 指令,但僅包含位址中的本機部分 (user)。

回應 VRFY 指令

vrfyallowvrfydefaultvrfyhide 關鍵字可控制傳送 SMTP 用戶端發出 SMTP VRFY 指令時 SMTP 伺服器的回應。

vrfyallow 關鍵字告知 MTA 發出詳細的資訊回應。vrfydefault 告知 MTA 提供詳細的資訊回應,除非已指定通道選項 HIDE_VERIFY=1vrfyhide 關鍵字告知 MTA 僅發出模糊的回應。這些關鍵字允許針對各通道控制 VRFY 回應,而與之相對的 HIDE_VERIFY 選項通常適用於透過同一 SMTP 伺服器處理的所有內送 TCP/IP 通 道。

EXPN 支援

關鍵字:expnallowexpndisableexpndefault

expnallow 允許 EXPN,即使已在 SMTP 伺服器層級透過 DISABLE_EXPAND SMTP 通道選項停用了 EXPN。expndisable 無條件停用 EXPN。如果 SMTP 伺服器設定為允許 EXPN (預設),則 expndefault 允許 EXPN。可針對每個清單停用延伸,但如果在伺服器級別停用延伸,則每個清單的設定不相關。

DNS 網域驗證

關鍵字:mailfromdnsverifynomailfromdnsverify

對內送 TCP/IP 通道設定 mailfromdnsverify 會使 MTA 驗證 DNS 中是否存在 SMTP MAIL FROM 指令中所用網域的項目,如果該項目不存在,則拒絕郵件。預設為 nomailfromdnsverify,表示不執行上述檢查。請注意,對傳回位址網域執行 DNS 檢查可能會導致某些需要的有效郵件被拒絕 (例如,來自只是尚未註冊網域名稱,或有時在 DNS 中存在錯誤資訊的合法站點的郵件);這樣就違背了 RFC 1123「Requirements for Internet Hosts」所體現的在接受與傳送電子郵件方面的包容性。但是,有些站點可能希望執行上述檢查,以避免傳送不存在的網域的帶有偽造電子郵件位址的垃圾電子郵件 (UBE)。

由於 COMORG 頂層網域中引入 DNS 萬用字元項目使 mailfromdnsverify 的作用降低,因此對 mailfromdnsverify 代碼進行了修改。DNS 傳回一個或多個 A 記錄時,這些值會與由新的 MTA 選項 BLOCKED_MAIL_FROM_IPS 所指定的網域文字列進行比較。如果匹配,該網域會視為無效。為了復原正確的運作方式,目前的正確設定為:

BLOCKED_MAIL_FROM_IPS=[64.94.110.11]

此選項的值預設為空字串。

字元集標記與八位元資料

關鍵字:charset7charset8charsetescsevenbiteightbiteightnegotiateeightstrict

字元集標記

MIME 規格提供標記一般文字郵件中所使用的字元集的機制。具體來說,可指定 charset= 參數做為 Content-type: 標頭行的一部分。MIME 中定義了多種字元集名稱,包括 US-ASCII (預設)、ISO-8859-1 和 ISO-8859-2,後續還定義了許多其他字元集。

某些現有系統與使用者代理程式不提供產生上述字元集標籤的機制;因此,有些一般文字郵件可能不會被正確標記。charset7charset8charsetesc 通道關鍵字提供針對各通道的機制,可指定要在缺少字元集標記的郵件標頭中插入的字元集名稱。 每個關鍵字都需要單一引數,以提供字元集名稱。這些名稱的有效性不會被檢查。但請注意,只能對 MTA 表目錄字元集定義檔案 charsets.txt 中所指定的字元集執行字元集轉換。如有可能,應使用該檔案中定義的名稱。

如果郵件僅包含七位元字元,則使用 charset7 字元集名稱;如果郵件包含八位元資料,則使用 charset8 字元集名稱;如果在僅包含七位元資料的郵件中碰巧還包含退出字元,則使用 charsetesc。如果未指定適當的關鍵字,則不會在 Content-type: 標頭行中插入任何字元集名稱。

請注意,charset8 關鍵字還控制郵件標頭中 (8 位元資料對於該標頭絕對為非法) 8 位元字元的 MIME 編碼。如果未指定 charset8 值,MTA 通常會將在郵件標頭中遇到的所有 (非法) 8 位元資料進行 MIME 編碼,將其標記為 UNKNOWN 字元集。

這些字元集規格永遠不會置換現有標籤,即如果郵件已有字元集標籤或郵件是文字以外的其他類型,則這些字元集規格都無效。通常適合將 MTA 本機通道標記為以下形式:


l ... charset7 US-ASCII charset8 ISO-8859-1 ...
hostname

如果郵件中沒有 Content-type 標頭,則會加入該標頭。如果沒有 MIME-version: 標頭行,此關鍵字還會加入該標頭行。

對於接收使用日語或韓語字元集、且包含退出字元之未標記郵件的通道,charsetesc 關鍵字極其有用。

八位元資料

某些傳輸會限制使用序數值大於 127 (十進位) 的字元。最明顯的是,某些 SMTP 伺服器會刪除高位元,並因此竄改使用此八位元範圍內字元的郵件。

Messaging Server 提供對這類郵件自動編碼的功能,使棘手的八位元字元不會直接顯示在郵件中。透過指定 sevenbit 關鍵字,此編碼可套用於在給定通道上形成佇 列的所有郵件。如果不存在此類限制,則應將通道標記為 eightbit

SMTP 協定不允許使用 eightbit,「除非遠端 SMTP 伺服器明確表示支援允許使用 eightbit 的 SMTP 延伸」。某些傳輸 (例如延伸的 SMTP) 可以實際支援某種協商形式,以確定是否可以傳輸八位元字元。因此,極力建議使用 eightnegotiate 關鍵字來指示通道在協商失敗時對郵件進行編碼。這是所有通道的預設;不支援協商的通道只假定傳輸能夠處理八位元資料。

eightstrict 關鍵字告知 Messaging Server 拒絕所有標頭包含非法八位元資料的內送郵件。

協定串流

關鍵字:streaming

某些郵件協定支援串流作業。這表示 MTA 可以一次發出多個作業,並等候各作業的回覆成批到達。streaming 關鍵字控制在與通道關聯的協定中使用的協定串流之程度。此關鍵字需要整數參數,而參數的解譯方式特定於使用的協定。

在一般情況下,串流支援的有效程度透過 SMTP 管線化作業延伸來進行協商。因此,此關鍵字不應用於一般情況。

串流值有效範圍為到。數值 0 指定無串流,數值 1 會使 RCPT TO 指令群組串流,數值 2 會使 MAIL FROM/RCPT TO 串流,而數值 3 會使 HELO/MAIL FROM/RCPT TO 或 RSET/MAIL FROM/RCPT TO 串流被使用。預設值為 0。

TCP/IP 連線和 DNS 查詢支援

可以指定有關伺服器如何處理 TCP/IP 連線與位址查詢的資訊。本節描述以下內容:

表 12–22 列出本小節說明的 TCP/IP 連線和 DNS 查詢關鍵字。

表 12–22 TCP/IP 連線和 DNS 查找關鍵字

通道關鍵字 

說明 

連接埠選取和介面位址

指定 SMTP 連線的預設連接埠號碼和介面位址 

port

指定 SMTP 連線的預設連接埠號碼。標準連接埠是 25。 

interfaceaddress

連結至特定的 TCP/IP 介面位址。 

快取關鍵字 

指定如何快取連線資訊 

cacheeverything

快取所有連線資訊。 

cachefailures

僅快取連線失敗資訊。 

cachesuccesses

僅快取連線成功資訊。 

nocache

不快取任何連線資訊。 

反向 DNS 查詢 

指定如何對送進的 SMTP 連線處理反向 DNS 查詢 

forwardcheckdelete

如果已執行了反向 DNS 查詢,接著會對傳回的名稱執行正向查詢以檢查傳回的 IP 號碼是否符合原始號碼;如果不符合,則刪除此名稱並使用 IP 位址。 

forwardchecknone

執行反向 DNS 查詢之後,不執行正向查詢。 

forwardchecktag

如果已執行了反向 DNS 查詢,接著會對傳回的名稱執行正向查詢以檢查傳回的 IP 號碼是否符合原始號碼;如果不符合,用 * 標記該名稱。 

IDENT 查詢/DNS 反向查詢 

指定如何對送進的 SMTP 連線處理 IDENT 查詢和 DNS 反向查詢 

identnone

不執行 IDENT 查詢;執行 IP 至主機名稱轉換;在 Received: 標頭中包含主機名稱和 IP 位址。

identnonelimited

不執行 IDENT 查詢;執行 IP 至主機名稱轉換,但在通道切換過程中不使用主機名稱;在 Received: 標頭中包含主機名稱和 IP 位址。

identnonenumeric

不執行 IDENT 查詢 IP 或至主機名稱轉譯。 

identnonesymbolic

不執行 IDENT 查詢;執行 IP 至主機名稱轉換;在 Received: 標頭中僅包含主機名稱。

identtcp

對內送 SMTP 連線執行 IDENT 查詢,並執行 IP 至主機名稱轉換;在 Received: 標頭中包含主機名稱和 IP 位址

identtcplimited

對送進的 SMTP 連線執行 IDENT 查詢及 IP 至主機名稱轉譯,但在通道切換期間不使用主機名稱。在 Received: 標頭中包含主機名稱和 IP 位址。

indenttcpnumeric

對送進的 SMTP 連線執行 IDENT 查詢,但不執行 IP 至主機名稱轉譯。 

identtcpsymbolic

對內送 SMTP 連線執行 IDENT 查詢和 IP 至主機名稱轉譯;在 Received: 標頭中僅包含主機名稱。

MX 記錄支援和 TCP/IP 名稱伺服器 

指定通道是否及如何支援 MX 記錄查詢 

mx

TCP/IP 網路和軟體支援 MX 記錄查詢。 

nomx

TCP/IP 網路不支援 MX 查詢。 

defaultmx

通道確定是否從網路執行 MX 查詢。 

randommx

執行 MX 查詢;隨機排序具有同等優先順序的傳回項目。 

nonrandomemx

執行 MX 查詢;不隨機排序具有同等優先順序的傳回項目。 

nameservers

指定要查閱的名稱伺服器清單,而不查閱 TCP/IP 堆疊自己的名稱伺服器選項;nameservers 需要這些名稱伺服器的 IP 位址清單 (各 IP 位址之間以空格分隔)。

defaultnameservers

查閱 TCP/IP 堆疊的名稱伺服器選項。 

lastresort

指定最後一台主機。 

切換關鍵字 

控制內送郵件之替代通道選取 

allowswitchchannel

允許從 switchchannel 通道切換至此通道

noswitchchannel

繼續使用伺服器通道;不切換至與原始主機關聯的通道;不允許被切換。 

switchchannel

從伺服器通道切換至與原始主機關聯的通道。 

tlsswitchchannel

TLS 協商成功時切換至其他通道。 

saslswitchchannel

SASL 認證成功時切換至其他通道。 

目標主機選擇和郵件副本儲存 

指定目標主機系統和如何儲存郵件副本。 

daemon

連線至特定的主機系統,不論訊息封位址為何。 

single

指定將為通道中的每個目標位址建立單獨的郵件副本。 

single_sys

為使用的每個目標系統建立單份郵件副本。 

TCP/IP 連接埠號碼和介面位址

關鍵字:portinterfaceaddress

經由 TCP/IP 通道的 SMTP 在傳送郵件時,通常會連線連接埠 25。port 關鍵字可 用於指示經由 TCP/IP 通道的 SMTP 連線非標準連接埠。請注意,此關鍵字與派送程式選項PORT 互補,該選項用於控制 MTA 偵聽哪些連接埠來接受 SMTP 連線。

interfaceaddress 關鍵字控制 TCP/IP 通道連結的、做為外寄連線來源位址的位址;亦即在具有多個介面位址的系統上,此關鍵字可控制在 MTA 傳送外寄 SMTP 郵件時用做來源 IP 位址的位址。請注意,此關鍵字與派送程式選項 INTERFACE_ADDRESS 互補,該選項用於控制 TCP/IP 通道偵聽哪個介面位址來接受內送的連線與郵件。

快取通道連線資訊

關鍵字:cacheeverythingnocachecachefailurescachesuccesses

使用 SMTP 協定的通道會維護包含先前連線嘗試歷程記錄的快取記憶體。此快取記憶體可用於避免多次重新連線至無法存取的主機,以免浪費大量時間並延遲其他郵件。此快取記憶體針對各個程序,而且只在外寄 SMTP 遞送通道單次執行期間存留。

此快取記憶體通常會記錄連線成功與失敗。(記錄成功的連線嘗試是為了彌補後續的失敗 - 一台先前成功但現在失敗的主機並不保證進行另一次連線嘗試之前的延遲時間會與從未嘗試或先前失敗時進行連線嘗試之前的延遲時間一樣長。)

但是,MTA 所使用的快取策略不一定適合所有情況。因此,提供通道關鍵字來調整 MTA 快取記憶體。

cacheeverything 關鍵字啟用所有形式的快取,該關鍵字為預設。nocache 關鍵字可停用所有快取。

cachefailures 關鍵字啟用連線失敗而不是成功的快取 — 這會強制進行重試,而重試的限制比 cacheeverything 的限制更為嚴格。最後,cachesuccesses 只快取成功連線。最後這個關鍵字對於 SMTP 通道的效果等同於 nocache

反向 DNS 查詢

關鍵字:forwardchecknoneforwardchecktagforwardcheckdelete

forwardchecknoneforwardchecktagforwardcheckdelete 通道關鍵字可修改執行反向 DNS 查詢的效果。這些關鍵字可控制 MTA 是否對使用 DNS 反向查詢找到的 IP 名稱執行正向查詢,如果請求執行正向查詢,這些關鍵字還可指定當 IP 名稱的正向查詢結果與連線中原始 IP 號碼不相符時,MTA 應執行何種作業。

forwardchecknone 關鍵字為預設,它表示不執行正向查詢。forwardchecktag 關鍵字告知 MTA 在每次反向查詢之後執行正向查詢,如果使用正向查詢找到的號碼與原始連線的號碼不相符,就以星號 (*) 標記相應的 IP 名稱。forwardcheckdelete 關鍵字告知 MTA 在每次反向查詢之後執行正向查詢,如果反向查詢傳回的名稱之結果與原始連線 IP 位址不匹配,就忽略 (刪除) 該名稱;在這種情況下,MTA 改為使用原始 IP 位址。


備註 –

對於許多站點,正向查詢的結果與原始 IP 位址不匹配這種情況很正常,因為這些站點對數個不同的 IP 位址使用更「通用」的 IP 名稱。


IDENT 查詢

關鍵字:identnoneidentnonelimitedidenttnonnumericidentnonesymbolicidenttcpidenttcpnumericidenttcpsymbolicidenttcplimited

IDENT 關鍵字控制 MTA 如何使用 IDENT 協定來處理連線與查詢。IDENT 協定在 RFC 1413 中加以說明。

identtcpidenttcpsymbolicidenttcpnumeric 關鍵字告知 MTA 使用 IDENT 協定來執行連線與查詢。從 IDENT 協定獲取的資訊 ( 通常是進行 SMTP 連線的使用者身份) 會插入到郵件的 Received: 標頭中,如下所示:


備註 –

遠端系統必須為 identtcpidenttcpsymbolicidenttcpnumeric 引起的 IDENT 查詢執行 IDENT 伺服器,使其發揮作用。


請注意,IDENT 查詢嘗試可能會影響效能。路由器會越來越多地「鎖定」嘗試與它們無法識別的連接埠進行的連線。如果 IDENT 查詢發生這種情況,則 MTA 在連線逾時 (TCP/IP 堆疊控制的逾時,通常是一兩分鐘) 之前將不會回聽。

identtcpindenttcplimitedidenttcpsymbolicidenttcpnumeric 比較時,會發現其他影響效能的因素。透過 identtcpidenttcplimitedidenttcpsymbolic 呼叫的 DNS 反向查詢,會耗用一些額外的時間來獲取更易使用的主機名稱。

identnone 關鍵字會停用 IDENT 查詢,但會指定 IP 至主機名稱轉換,而且 IP 號碼和主機名稱都將包含在郵件的 Received: 標頭中。

identnonesymbolic 關鍵字會停用 IDENT 查詢,但會指定 IP 至主機名稱轉換;僅主機名稱會包含在郵件的 Received: 標頭中。

identnonenumeric 關鍵字會停用此 IDENT 查詢,禁止執行通常 IP 號碼至主機名稱的 DNS 反向查詢轉換,並可能會提昇效能,但會造成 Received: 標頭中更易使用的資訊減少。這是預設。

對於 IDENT 查詢、反向 DNS 查詢和 Received: 標頭中顯示的資訊而言,identtcplimitedidentnonelimited 關鍵字的效果分別與 identtcpidentnone 的效果相同。不同之處在於,使用 identtcplimitedidentnonelimited 時,不論 DNS 反向查詢是否成功地決定了主機名稱,IP 文字列位址始終會用做由於使用 switchchannel 關鍵字而進行的任一通道切換之基礎。

TCP/IP MX 記錄支援

關鍵字:mxnomxdefaultmxrandommxnonrandommx

有些 TCP/IP 網路支援使用 MX (郵件轉寄) 記錄,有些則不支援。如果 MTA 系統所連線的網路不提供 MX 記錄,有些 TCP/IP 通道程式可被配置為不使用 MX 記錄。mxnomxdefaultmxrandommxnonrandommx 關鍵字控制 MX 記錄支援。

關鍵字 randommx 指定應執行 MX 查詢,而且應以隨機順序處理同等優先順序的 MX 記錄值。關鍵字 nonrandommx 指定應執行 MX 查詢,而且應以接收時的順序處理同等優先順序的 MX 值。

目前,mx 關鍵字等同於 nonrandommx;在未來的發行版本中可能會變更為等同於 randommxnomx 關鍵字停用 MX 查詢。defaultmx 關鍵字指定在網路表示支援 MX 記錄時,應使用 mx。關鍵字 defaultmx 是以任何形式支援 MX 查詢的通道之預設。

名稱伺服器查詢

關鍵字:nameserversdefaultnameservers

執行名稱伺服器查詢時,nameservers 通道關鍵字可用於指定要查閱的名稱伺服器清單,而不是查閱 TCP/IP 堆疊自己的名稱伺服器選項。nameservers 關鍵字需要以空格分隔的名稱伺服器 IP 位址清單,如下例所示:

nameservers 1.2.3.1 1.2.3.2

預設為 defaultnameservers,表示使用 TCP/IP 堆疊自己的名稱伺服器選項。

為避免在 UNIX 上執行名稱伺服器查詢,可以修改 nsswitch.conf 檔案。在 NT 上修改 TCP/IP 配置。

最後一台主機

關鍵字:lastresort

lastresort 關鍵字用於指定即使所有其他連線嘗試均失敗,仍可連線的主機。實際上,它充當最後一個 MX 記錄。此關鍵字僅適用於 SMTP 通道。

此關鍵字需要單一引數以指定「最後一個可使用的系統」的名稱。例如:

tcp_local single_sys smtp mx lastresort mailhub.siroe.com
TCP-DAEMON

內送郵件的替代通道 (切換通道)

關鍵字:switchchannelallowswitchchannelnoswitchchannel。另請參閱SMTP 認證、SASL 與 TLSsaslswitchchannel傳輸層安全tlsswitchchannel

以下關鍵字控制內送郵件的替代通道選取:switchchannelallowswitchchannelnoswitchchannel

MTA 接受來自遠端系統的內送連線時,它必須選擇與此連線關聯的通道。通常此決定依使用的傳輸而定;例如,經由 TCP/IP 的內送 SMTP 連線會自動與 tcp_local 通道相關聯。

但是,使用具有不同特性的多個外寄通道處理經由同一傳輸的不同系統時,此慣例就無法奏效。發生這種情況時,內送連線不會與外寄連線所關聯的通道相關聯,因此對應的通道特性也不會與遠端系統相關聯。

switchchannel 關鍵字提供了解決此難題的方法。如果對伺服器使用的初始通道指定 switchchannel,連線 (原始) 主機的 IP 位址將對照通道表進行匹配,如果相符,則來源通道隨之變更。如果找不到相符的 IP 位址,或發現相符結果符合原始預設的送進的通道,則 MTA 可以選擇使用 DNS 反向查詢所找到的主機名稱來嘗試匹配。來源通道可以變更為標記了 switchchannelallowswitchchannel (預設) 的任何通道。noswitchchannel 關鍵字指定不應自該通道進行切換,也不應切換至該通道。

switchchannel 的規格對於伺服器依預設關聯的通道以外的任何通道都無效。目前,switchchannel 僅影響 SMTP 通道,但實際上也沒有其他通道適合使用 switchchannel

目標主機選擇

關鍵字:daemonsinglesingle_sys

daemon 關鍵字的解譯與用法取決於其所套用之通道的類型。

daemon 關鍵字用於 SMTP 通道,可控制目標主機的選擇。

通常,通道會連線至要處理的郵件之訊息封位址中列出的任一台主機。daemon 關鍵字用於告知通道改為連線特定的遠端系統,通常是防火牆或郵件中心系統,而不論訊息封位址為何。實際的遠端系統名稱應直接出現在 daemon 關鍵字之後,如以下範例所示:

tcp_firewall smtp mx daemon firewall.acme.com
TCP-DAEMON

如果 daemon 關鍵字之後的引數並非完全合格的網域名稱,該引數會被忽略,而通道將連線至其正式主機。正式主機是與通道相關的完全合格的主機名稱。它可以在三行通道區塊的第二行中進行指定:

tcp_firewall smtp mx daemon router
firewall.acme.com
TCP-DAEMON

正式主機也可以在兩行通道區塊的 TCP-DAEMON 之後指定,因此,外寄連線將其做為特定主機來識別自己:

tcp_firewall smtp mx daemon router
TCP-DAEMON firewall.acme.com

指定防火牆或閘道系統名稱做為正式主機名稱時,通常將指定給 daemon 關鍵字的引數指定為路由器,如下例所示:

tcp_firewall smtp mx daemon router
firewall.acme.com
TCP-DAEMON

其他所需關鍵字為 singlesingle_syssingle 關鍵字指定將為通道中的每個目標位址建立單份郵件副本。single_sys 關鍵字為使用的每個目標系統建立單份郵件副本。請注意,不論使用的關鍵字為何,都要為郵件形成佇列時所在的每個通道至少建立一份郵件副本。

SMTP 認證、SASL 與 TLS

關鍵字:maysaslservermustsaslservernosaslnosaslserversaslswitchchannelnosaslswitchchannel)

可以使用 SASL ( 簡易認證和安全層) 控制 Messaging Server 是否支援 SMTP 伺服器認證。SASL 定義於 RFC 2222 中,如需有關 SASL、SMTP 認證和安全性的更多資訊,請參閱第 19 章, 配置安全性和存取控制

maysaslservermustsaslservernosaslnosaslserver、switchchannelsaslswitchchannel 通道關鍵字可用於將 SASL (SMTP AUTH) 配置為可由 SMTP 通道 (例如 TCP/IP 通道) 在 SMTP 協定期間使用。

nosasl 為預設,表示不允許或不嘗試 SASL 認證。它包含 nosaslserver,該關鍵字表示不允許 SASL 認證。指定 maysaslserver 會使 SMTP 伺服器允許用戶端嘗試使用 SASL 認證。指定 mustsaslserver 可使 SMTP 伺服器堅持要求用戶端使用 SASL 認證;除非遠端用戶端認證成功,否則 SMTP 伺服器不接受郵件。

使用 saslswitchchannel 可使內送連線在用戶端成功使用 SASL 時切換至指定的通道。它接受所需的值,以指定要切換至哪個通道。

使用標頭中 SMTP AUTH 的經認證的位址

關鍵字:authrewrite

authrewrite 通道關鍵字和相關的 AUTH_REWRITE 對映表允許使用從認證作業獲得的定址資訊修改標頭和訊息封位址。具體來說,SASL 可以將認證配置為提供授權的電子郵件位址。通常會使用 SMTP AUTH 資訊,雖然也可以透過 FROM_ACCESS 對映來置換該資訊。authrewrite 關鍵字根據表 12–23 接受所需位元值。

表 12–23 authrewrite 位元值

位元 

值 

說明 

請勿做任何變更 (預設) 

增加含有認證作業提供的位址之 Sender: 或 Resent-sender: 標頭欄位。如果存在其他 resent- 欄位,則使用 Resent- 變體。 

增加含有認證作業提供的位址之 Sender: 標頭欄位。 

在名為 AUTH_REWRITE 的對映表中建構以下形式的探測:

mail-from|sender|from|auth-sender

其中,mail-from 為訊息封 From: 位址,sender 為來自 Sender:Resent-sender: 標頭欄位的位址,from 為來自 From:Resent-From: 標 頭欄位的位址,auth-sender 是認證作業提供的位址。

透過 AUTH_REWRITE 對映來執行結果。該對映應傳回以垂直線 ( |) 分隔的項目清單。可透過設定以下旗標按順序來使用這些項目:

$J $K 替代郵件的訊息封 From: 位址

$Y $T 增加相應的 Sender:Resent-sender: 標頭欄位。

$N 拒絕郵件。對映結果提供錯誤訊息文字。如果沒有提供文字,則將顯示 invalid originator address used 錯誤訊息。

$Z 增加相應的 From:Resent-from: 標頭欄位。(請注意,通常情況下請勿置換 From: 欄位。)

如果標頭中存在其他 Resent- 欄位,則使用 Resent- 變體。

16 

即使認證沒有提供經認證的位址,仍套用 AUTH_REWRITE 對映。如果清除位元,則將僅當有可用的經認證的位址時才套用對映。

32 

AUTH_REWRITE 對映偵測開始處包含來源通道。以 | 將其與其餘的資訊分隔開。如果清除位元,則不包含此通道。


注意 – 注意 –

應嚴格限制 $Z 旗標,因為其很少正式用於修改訊息封和標頭位址。


指定 Microsoft Exchange 閘道通道

關鍵字:msexchangenomsexchange

msexchange 通道關鍵字可用於 TCP/IP 通道,告知 MTA 此通道與 Microsoft Exchange 閘道和用戶端進行通訊。置於已啟用 SASL (透過 maysaslservermustsaslserver 關鍵字) 的內送 TCP/IP 通道時,它會導致 MTA 的 SMTP 伺服器使用「不正確的」格式 (根據原始 ESMTP AUTH 規格而不是新的已校正 AUTH 規格,原始 ESMTP AUTH 實際上與正確的 ESMTP 用法不相容) 通告 AUTH。例如,某些 Microsoft Exchange 用戶端無法識別正確的 AUTH 格式,僅能識別錯誤的 AUTH 格式。

msexchange 通道關鍵字還會通告 (和識別) 中斷的 TLS 指令。

nomsexchange 為預設。

傳輸層安全

關鍵字:maytlsmaytlsclientmaytlsservermusttlsmusttlsclientmusttlsservernotlsnotlsclientnotlsservertlsswitchchannel

maytlsmaytlsclientmaytlsservermusttlsmusttlsclientmusttlsservernotlsnotlsclientnotlsservertlsswitchchannel 通道關鍵字可用於將 TLS 配置為由基於 SMTP 的通道 ( 例如 TCP/IP 通道) 在 SMTP 協定期間使用。

預設為 notls,表示不允許或不嘗試使用 TLS。它包含 notlsclient 關鍵字,該關鍵字表示 MTA SMTP 用戶端不會對外寄連線嘗試使用 TLS (在外寄連線期間不會發出 STARTTLS 指令);還包含 notlsserver 關鍵字,該關鍵字表示 MTA SMTP 伺服器不會對內送連線允許使用 TLS (STARTTLS 延伸不會被 SMTP 伺服器通告,指令本身也不會被接受)。

指定 maytls 會使 MTA 為內送連線提供 TLS 並對外寄連線嘗試 TLS。它包含 maytlsclient,該關鍵字表示 MTA SMTP 用戶端在傳送外寄郵件時,如果是傳送給支援 TLS 的 SMTP 伺服器,則將嘗試使用 TLS;還包含 maytlsserver,該關鍵字表示 MTA SMTP 伺服器將通告支援 STARTTLS 延伸,並允許在接收郵件時使用 TLS。

請注意,為了使 TLS 發揮作用,必須滿足以下條件:

指定 musttls 會使 MTA 堅持要求對外寄與內送連線都使用 TLS;如果無法與遠端系統成功協商 TLS 的使用,則不會與之交換電子郵件。它包含 musttlsclient,該關鍵字表示 MTA SMTP 用戶端在傳送外寄郵件時,將堅持要求使用 TLS,並且不會將郵件傳送至未能成功協商使用 TLS 的 SMTP 伺服器 (MTA 將發出 STARTTLS 指令,而且該指令必須成功)。它還包含 musttlsserver,該關鍵字表示 MTA SMTP 伺服器在接收內送郵件時,將通告支援 STARTTLS 延伸,並會堅持要求使用 TLS,且不會接受來自未能成功協商使用 TLS 的用戶端的郵件。

tlsswitchchannel 關鍵字用於使內送連線在用戶端成功協商 TLS 時切換至指定的通道。它接受所需的值,以指定要切換至哪個通道。