Sun Java logo     上一個      目錄      索引      下一個     

Sun logo
Sun Java System Messaging Server 6 2005Q1 管理指南 

第 12 章
配置通道定義

本章描述如何在 MTA 配置檔案 imta.cnf 中使用通道關鍵字定義。在閱讀本章之前,請先閱讀第 10 章「關於 MTA 服務和配置」以及「通道定義」與「MTA 配置檔案」。本章包含以下各節:


注意

如果您變更了 imta.cnf 中的通道定義,就必須使用 imsimta restart 指令,重新啟動僅在啟動時才載入一次配置資料的所有程式或通道,例如 SMTP 伺服器。如果您使用已編譯的配置,則必須重新編譯,然後再重新啟動。如需有關編譯配置和啟動程式的更多資訊,請參閱 Messaging Server Reference Manual



通道關鍵字 (依字母順序列出)

下表是依字母順序列出的關鍵字清單。

表 12-1  通道關鍵字 (依字母順序) 

關鍵字

頁數

關鍵字

頁數

關鍵字

頁數

關鍵字

頁數

733

「更多」

822

「更多」

addreturnpath

「更多」

addrsperfile

「更多」

Aliasdetourhost

「更多」

aliaslocal

「更多」

aliaspostmaster

「更多」

allowetrn

「更多」

allowswitchchannel

「更多」

alternatechannel

「更多」

alternateblocklimit

「更多」

alternatelinelimit

「更多」

alternaterecipientlimit

「更多」

authrewrite

「更多」

backoff

「更多」

bangoverpercent

「更多」

bangstyle

「更多」

bidirectional

「更多」

blocketrn

「更多」

blocklimit

「更多」

cacheeverything

「更多」

cachefailures

「更多」

cachesuccesses

「更多」

channelfilter

「更多」

charset7

「更多」

charset8

「更多」

charsetesc

「更多」

checkehlo

「更多」

commentinc

「更多」

commentmap

「更多」

commentomit

「更多」

commentstrip

「更多」

commenttotal

「更多」

connectalias

「更多」

connectcanonical

「更多」

copysendpost

「更多」

copywarnpost

「更多」

daemon

「更多」

datefour

「更多」

datetwo

「更多」

dayofweek

「更多」

defaulthost

「更多」

defaultmx

「更多」

defaultnameservers

「更多」

deferralrejectlimit

「更多」

deferred

「更多」

defragment

「更多」

dequeue_removeroute

「更多」

destinationfilter

「更多」

destinationnosolicit

「更多」

destinationspamfilterXoptin

「更多」

disableetrn

「更多」

dispositionchannel

「更多」

disconnectbadauthlimit

「更多」

disconnectbadcommandlimit

「更多」

domainetrn

「更多」

domainvrfy

「更多」

dropblank

「更多」

ehlo

「更多」

eightbit

「更多」

eightnegotiate

「更多」

eightstrict

「更多」

errsendpost

「更多」

errwarnpost

「更多」

expandchannel

「更多」

expandlimit

「更多」

expnallow

「更多」

expndisable

「更多」

expndefault

「更多」

exproute

「更多」

fileinto

「更多」

filesperjob

「更多」

filter

「更多」

forwardcheckdelete

「更多」

forwardchecknone

「更多」

forwardchecktag

「更多」

header_733

「更多」

header_822

「更多」

header_uucp

「更多」

headerlabelalign

「更多」

headerlimit

「更多」

headerlinelength

「更多」

headerread

「更多」

headertrim

「更多」

holdexquota

「更多」

holdlimit

「更多」

identnone

「更多」

identnonelimited

「更多」

identnonenumeric

「更多」

identnonesymbolic

「更多」

identtcp

「更多」

identtcplimited

「更多」

identtcpsymbolic

「更多」

ignoreencoding

「更多」

immnonurgent

「更多」

improute

「更多」

includefinal

「更多」

indenttcpnumeric

「更多」

inner

「更多」

innertrim

「更多」

interfaceaddress

「更多」

interpretencoding

「更多」

語言

「更多」

lastresort

「更多」

linelength

「更多」

linelimit

「更多」

localvrfy

「更多」

logging

「更多」

logheader

「更多」

loopcheck

「更多」

mailfromdnsverify

「更多」

master

「更多」

master_debug

「更多」

maxblocks

「更多」

maxheaderaddrs

「更多」

maxheaderchars

「更多」

maxjobs

「更多」

maxlines

「更多」

maxprocchars

「更多」

maysaslserver

「更多」

maytls

「更多」

maytlsclient

「更多」

maytlsserver

「更多」

missingrecipientpolicy

「更多」

msexchange

「更多」

multiple

「更多」

mustsaslserver

「更多」

musttls

「更多」

musttlsclient

「更多」

musttlsserver

「更多」

mx

「更多」

namelengthlimit

「更多」

nameservers

「更多」

noaddreturnpath

「更多」

nobangoverpercent

「更多」

noblocklimit

「更多」

nocache

「更多」

nochannelfilter

「更多」

nodayofweek

「更多」

nodefaulthost

「更多」

nodeferred

「更多」

nodefragment

「更多」

nodestinationfilter

「更多」

nodropblank

「更多」

noehlo

「更多」

noexproute

「更多」

noexquota

「更多」

nofileinto

「更多」

nofilter

「更多」

noheaderread

「更多」

noheadertrim

「更多」

noimproute

「更多」

noinner

「更多」

noinnertrim

「更多」

nolinelimit

「更多」

nologging

「更多」

noloopcheck

「更多」

nomailfromdnsverify

「更多」

nomaster_debug

「更多」

nomsexchange

「更多」

nomx

「更多」

nonrandomemx

「更多」

nonurgentbackoff

「更多」

nonurgentblocklimit

「更多」

nonurgentnotices

「更多」

noreceivedfor

「更多」

noreceivedfrom

「更多」

noremotehost

「更多」

norestricted

「更多」

noreturnaddress

「更多」

noreturnpersonal

「更多」

noreverse

「更多」

normalbackoff

「更多」

normalblocklimit

「更多」

normalnotices

「更多」

norules

「更多」

nosasl

「更多」

nosaslserver

「更多」

nosaslswitchchannel

「更多」

nosendetrn

「更多」

nosendpost

「更多」

noservice

「更多」

noslave_debug

「更多」

nosmtp

「更多」

nosourcefilter

「更多」

noswitchchannel

「更多」

notices

「更多」

notificationchannel

「更多」

notls

「更多」

notlsclient

「更多」

notlsserver

「更多」

novrfy

「更多」

nowarnpost

「更多」

nox_env_to

「更多」

parameterlengthlimit

「更多」

percentonly

「更多」

percents

「更多」

personalinc

「更多」

personalmap

「更多」

personalomit

「更多」

personalstrip

「更多」

pool

「更多」

port

「更多」

postheadbody

「更多」

postheadonly

「更多」

randommx

「更多」

receivedfor

「更多」

receivedfrom

「更多」

recipientcutoff

「更多」

recipientlimit

「更多」

rejectsmtplonglines

「更多」

remotehost

「更多」

restricted

「更多」

returnaddress

「更多」

returnenvelope

「更多」

returnpersonal

「更多」

reverse

「更多」

routelocal

「更多」

rules

「更多」

rules

「更多」

saslswitchchannel

「更多」

sendetrn

「更多」

sendpost

「更多」

sensitivitycompanyconfidential

「更多」

sensitivitynormal

「更多」

sensitivitypersonal

「更多」

sensitivityprivate

「更多」

service

「更多」

sevenbit

「更多」

silentetrn

「更多」

single

「更多」

single_sys

「更多」

slave

「更多」

slave_debug

「更多」

smtp

「更多」

smtp_cr

「更多」

smtp_crlf

「更多」

smtp_crorlf

「更多」

smtp_lf

「更多」

sourceblocklimit

「更多」

sourcecommentinc

「更多」

sourcecommentmap

「更多」

sourcecommentomit

「更多」

sourcecommentstrip

「更多」

sourcecommenttotal

「更多」

sourcefilter

「更多」

sourcenosolicit

「更多」

sourcepersonalinc

「更多」

sourcepersonalmap

「更多」

sourcepersonalomit

「更多」

sourcepersonalstrip

「更多」

sourceroute

「更多」

sourcespamfilterXoptin

「更多」

streaming

「更多」

subaddressexact

「更多」

subaddressrelaxed

「更多」

subaddresswild

「更多」

subdirs

「更多」

submit

「更多」

suppressfinal

「更多」

switchchannel

「更多」

threaddepth

「更多」

tlsswitchchannel

「更多」

transactionlimit

「更多」

truncatesmtplonglines

「更多」

unrestricted

「更多」

urgentbackoff

「更多」

urgentblocklimit

「更多」

urgentnotices

「更多」

useintermediate

「更多」

user

「更多」

uucp

「更多」

viaaliasoptional

「更多」

viaaliasrequired

「更多」

vrfyallow

「更多」

vrfydefault

「更多」

vrfyhide

「更多」

warnpost

「更多」

wrapsmtplonglines

「更多」

x_env_to

「更多」


通道關鍵字 (依功能分類)

下表是關鍵字分類清單。種類如下:

表 12-2  通道關鍵字 (依功能分類) 

關鍵字

頁數

定義

位址處理

733

「更多」

在訊息封中使用 % 路由;與 percents 同義。

822

「更多」

在訊息封中使用來源路徑;與 sourceroute 相同。

addreturnpath

「更多」

Return-path:標頭加入在此通道上形成佇列的郵件中。

aliaslocal

「更多」

在 Alias 檔案和 Alias 資料庫中查詢重寫的位址。

authrewrite

「更多」

用於來源通道,讓 MTA 將經認證的創建者資訊 (如果有) 傳至標頭。

bangoverpercent

「更多」

將 A!B%C 群組為 A!(B%C)

bangstyle

「更多」

在訊息封中使用 UUCP ! 路由;與 uucp 同義。

defaulthost

「更多」

指定用於使位址完整的網域名稱

dequeue_removeroute

「更多」

從訊息封 To: 位址中移除來源位址。

exproute

「更多」

當位址傳送至遠端系統時,需要明確的路由。

holdlimit

「更多」

當郵件訊息封收件者位址數量超過此限制時,扣留該郵件。

improute

「更多」

對於此通道的位址進行隱式路由

missingrecipientpolicy

「更多」

為如何使缺少任何收件者標頭的郵件合法化 (加入哪些標頭) 設定策略。

noaddreturnpath

「更多」

郵件形成佇列時,不新增 Return-path: 標頭。

nobangoverpercent

「更多」

將 A!B%C 群組為 (A!B)%C

nodefaulthost

「更多」

不指定用於使位址完整的網域名稱

noexproute

「更多」

對於此通道的位址沒有明確的路由。

noimproute

「更多」

對於此通道的位址沒有隱式路由。

noreceivedfrom

「更多」

建構 Received: 標頭行,但不納入原始訊息封 From: 位址。

noremotehost

「更多」

使用本地主機的網域名稱作為預設的網域名稱,使位址完整

norestricted

「更多」

unsrestricted 相同。

noreverse

「更多」

郵件中的位址免於進行位址反向處理

norules

「更多」

不強制檢查此通道的通道特定重寫規則。

percentonly

「更多」

忽略 bang 路徑。在訊息封中使用 % 路由。

percents

「更多」

在訊息封中使用 % 路由;與 733 同義。

remotehost

「更多」

使用遠端主機的名稱作為預設的網域名稱,使位址完整

restricted

「更多」

通道連線至需要編碼的郵件系統。

reverse

「更多」

對照位址反向資料庫或 REVERSE 對映檢查位址。

routelocal

「更多」

將位址重寫至通道時,使 MTA 嘗試「短路」位址中任何明確的路由。

rules

「更多」

強制檢查此通道的通道特定重寫規則。

sourceroute

「更多」

822 同義。

subaddressexact

「更多」

項目匹配期間,不執行特殊的子位址處理;整個電子信箱 (包括子位址) 必須符合某個項目,以使別名被視為相符。

subaddressrelaxed

「更多」

尋找完全相符且符合形式「名稱+*」的項目之後,MTA 應額外檢查相符項目的名稱部分。

subaddresswild

「更多」

尋找完全相符 (包括整個子位址) 的項目之後,MTA 應接著尋找「名稱+*」形式的項目。

unrestricted

「更多」

告知 MTA 不執行 RFC 1137 編碼和解碼。

uucp

「更多」

在訊息封中使用 UUCP! 路由;與 bangstyle 同義。

viaaliasoptional

「更多」

符合通道的最終收件者位址不需要由別名產生。

viaaliasrequired

「更多」

符合通道的最終收件者位址必須由別名產生。

附件和 MIME 處理

defragment

「更多」

在通道上形成佇列的部分郵件改為放置於重新整理通道佇列中。

ignoreencoding

「更多」

忽略內送的郵件的 Encoding: 標頭。

interpretencoding

「更多」

如有必要,解譯內送的郵件的 Encoding: 標頭。

nodefragment

「更多」

停用重新整理。

字元集與八位元資料

charset7

「更多」

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

charset8

「更多」

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

charsetesc

「更多」

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

eightbit

「更多」

通道支援八位元字元。

eightnegotiate

「更多」

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

eightstrict

「更多」

拒絕具有包含未經協商之八位元資料的標頭的郵件。

sevenbit

「更多」

不支援 8 位元字元;8 位元字元必須經過編碼。

在 MTA 佇列區域建立檔案

addrsperfile

「更多」

可與通道佇列中單個郵件檔案關聯的收件者最大數量限制

expandchannel

「更多」

指定因應用 expandlimit 而執行延遲延伸時所在的通道。

expandlimit

「更多」

當位址數量超過此限制時,「離線」處理內送的郵件。

multiple

「更多」

不限制郵件檔案中收件者的數量,但是 SMTP 通道預設為 99。

single

「更多」

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

single_sys

「更多」

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

subdirs

「更多」

指定為通道佇列分佈郵件的子目錄數量。

標頭

authrewrite

「更多」

用於來源通道,讓 MTA 將經認證的創建者資訊 (如果有) 傳至標頭。

commentinc

「更多」

保留郵件標頭行中的註釋不變。

commentmap

「更多」

透過 COMMENT_STRINGS 對映表執行郵件標頭行中的註釋字串。

commentomit

「更多」

移除郵件標頭行中的註釋。

commentstrip

「更多」

移除郵件標頭行中註釋欄位內有問題的字元。

commenttotal

「更多」

刪除所有標頭行中的註釋 (括號中的內容),但 Received: 標頭行。建議不要使用。

datefour

「更多」

將所有年份欄位延伸為四位數。

datetwo

「更多」

從四位數日期中移除前兩位數。提供與需要兩位數日期的郵件系統的相容性;不應用於其他任何目的。

dayofweek

「更多」

保留星期資訊,如無此資訊,將其加入日期與時間標頭中。

defaulthost

「更多」

指定用於使位址完整的網域名稱。

dropblank

「更多」

刪除內送的郵件中非法的空標頭。

header_733

「更多」

在郵件標頭中使用 % 路由。

header_822

「更多」

在郵件標頭中使用來源路徑。

headerlabelalign

「更多」

控制在此通道上形成佇列的郵件標頭之對齊點;其引數的值為整數。

headerlinelength

「更多」

控制在此通道上形成佇列的標頭行之長度。

headerread

「更多」

在處理原始郵件標頭之前,當郵件形成佇列時,將選項檔案的標頭修整規則套用於郵件標頭 (謹慎使用)。

headertrim

「更多」

在處理原始郵件標頭之後,將選項檔案的標頭修整規則套用於郵件標頭。

header_uucp

「更多」

在標頭中使用 ! 路由。

inner

「更多」

剖析郵件並重寫內部標頭。

innertrim

「更多」

將選項檔案的標頭修整規則套用於內部郵件標頭 (謹慎使用)。

language

「更多」

指定標頭中的預設語言。

maxheaderaddrs

「更多」

控制一行中可以顯示的位址數。

maxheaderchars

「更多」

控制一行中可以顯示的字元數。

missingrecipientpolicy

「更多」

為如何使缺少任何收件者標頭的郵件合法化 (加入哪些標頭) 設定策略。

nodayofweek

「更多」

從日期與時間標頭中移除星期。提供與無法處理該資訊的郵件系統的相容性;不應用於其他任何目的。

nodefaulthost

「更多」

不指定用於使位址完整的網域名稱。

nodropblank

「更多」

不刪除內送的郵件中非法的空標頭。

noheaderread

「更多」

不套用選項檔案的標頭修整規則。

noheadertrim

「更多」

不套用選項檔案的標頭修整規則。

noinner

「更多」

不重寫內部郵件標頭行。

noinnertrim

「更多」

不對內部郵件標頭套用標頭修整。

noreceivedfor

「更多」

建構 Received: 標頭行,但不納入任何訊息封收件者資訊。

noreceivedfrom

「更多」

建構 Received: 標頭行,但不納入原始訊息封 From: 位址。

noremotehost

「更多」

使用本地主機的網域名稱作為預設的網域名稱,使位址完整。

noreverse

「更多」

在通道上形成佇列的郵件中的位址免於進行位址反向處理。

norules

「更多」

不強制檢查此通道的通道特定重寫規則。

nox_env_to

「更多」

移除 X-Envelope-to 標頭行。

personalinc

「更多」

保留郵件標頭行中的個人名稱欄位不變。

personalmap

「更多」

透過 PERSONAL_NAMES 對映表執行個人名稱。

personalomit

「更多」

移除郵件標頭行中的個人名稱欄位。

personalstrip

「更多」

刪除標頭行中個人名稱欄位內有問題的字元。

receivedfor

「更多」

如果郵件只傳送給一位訊息封收件者,請在其建構的 Received: 標頭行中納入訊息封 Received: 位址標頭行中納入訊息封 To: 位址。

receivedfrom

「更多」

如果 MTA 已變更訊息封 From: 位址,則在為內送的郵件建構 Received: 標頭行時,納入原始訊息封的 From: 位址。

remotehost

「更多」

使用遠端主機的名稱作為預設的網域名稱,使位址完整

restricted

「更多」

通道連線至需要此編碼的郵件系統。

reverse

「更多」

對照位址反向資料庫或 REVERSE 對映檢查位址

rules

「更多」

強制檢查此通道的通道特定重寫規則。

sensitivitycompanyconfidential

「更多」

Companyconfidential 是郵件能接受的敏感性上限。

sensitivitynormal

「更多」

Normal 是郵件能接受的敏感性上限。

sensitivitypersonal

「更多」

Personal 是郵件能接受的敏感性上限。

sensitivityprivate

「更多」

Private 是郵件能接受的敏感性上限。

sourcecommentinc

「更多」

保留內送的郵件標頭行中的註釋。

sourcecommentmap

「更多」

透過來源通道執行郵件標頭行中的註釋字串。

sourcecommentomit

「更多」

移除內送的郵件標頭行 (例如 To:、From: 與 Cc: 標頭) 中的。

sourcecommentstrip

「更多」

移除內送的標頭行中註釋欄位內有問題的字元。

sourcecommenttotal

「更多」

刪除內送的郵件中的註釋 (括號中的內容)。

sourcepersonalinc

「更多」

保留內送的郵件標頭行中的個人名稱不變。

sourcepersonalmap

「更多」

透過來源通道執行個人名稱。

sourcepersonalomit

「更多」

移除內送的郵件標頭行中的個人名稱欄位。

sourcepersonalstrip

「更多」

刪除內送的郵件標頭行中個人名稱欄位內有問題的字元。

unrestricted

「更多」

告知 MTA 不執行 RFC 1137 編碼和解碼。

x_env_to

「更多」

產生 X-Envelope-to 標頭行。

內送的通道之匹配和切換

allowswitchchannel

「更多」

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

nosaslswitchchannel

「更多」

SASL 認證成功時,不切換至此通道。

noswitchchannel

「更多」

不應自該通道進行切換,也不應切換至該通道。

switchchannel

「更多」

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

saslswitchchannel

「更多」

當用戶端成功使用 SASL 時,使進來的連線切換至指定的通道。

tlsswitchchannel

「更多」

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

記錄和除錯

logging

「更多」

在記錄檔中記錄訊息形成佇列和移出佇列的情況,並啟動對特定通道的記錄。

loopcheck

「更多」

將字串置入 SMTP EHLO 回應大標題中,使 MTA 檢查是否正與其自身通訊。

master_debug

「更多」

在通道的主要程式輸出中建立除錯輸出。

nologging

「更多」

不在記錄檔中記錄訊息形成佇列和移出佇列的情況。

noloopcheck

「更多」

不在 SMTP EHLO 回應大標題中置入字串。

nomaster_debug

「更多」

在通道的主要程式輸出中沒有除錯輸出。

noslave_debug

「更多」

不產生從屬除錯輸出。

slave_debug

「更多」

產生從屬除錯輸出。

長位址清單或標頭

expandchannel

「更多」

指定因應用 expandlimit 而執行延遲延伸時所在的通道。

expandlimit

「更多」

當位址數量超過此限制時,「離線」處理內送的郵件。

holdlimit

「更多」

當郵件位址數量超過此限制時,扣留該郵件。

maxprocchars

「更多」

可以處理與重寫的標頭最大長度。

電子信箱篩選器

channelfilter

「更多」

通道篩選器檔案的位置;與 destinationfilter 相同。

destinationfilter

「更多」

套用於外寄的郵件的通道篩選器檔案的位置。

destinationspamfilterXoptin

「更多」

透過垃圾郵件篩選軟體 X 執行發往此通道的郵件。

fileinto

「更多」

指定在套用電子信箱篩選器 fileinto 作業時對位址的影響。

filter

「更多」

指定使用者篩選器檔案的位置。

nochannelfilter

「更多」

沒有用於外寄的郵件的通道篩選。也稱為 nodestinationfilter

nodestinationfilter

「更多」

不對外寄的郵件執行通道篩選。

nofileinto

「更多」

電子信箱篩選器 fileinto 運算子無效。

nofilter

「更多」

不執行使用者電子信箱篩選。

nosourcefilter

「更多」

不對內送的郵件執行通道篩選。

sourcefilter

「更多」

指定用於內送的郵件之通道篩選器檔案的位置。

sourcespamfilterXoptin

「更多」

透過垃圾郵件篩選軟體 X 執行源自此通道的郵件。

NO-SOLICIT SMTP 延伸支援

sourcenosolicit

「更多」

指定推銷信的欄位值清單 (用逗號分隔),由這些通道寄出的郵件將被封鎖。

destinationnosolicit

「更多」

指定推銷信的欄位值清單 (用逗號分隔),形成佇列等候寄至這些通道的郵件將被拒絕。

通知與 Postmaster 郵件

(請參閱「更多」,以取得完整的通知程序)

aliaspostmaster

「更多」

用正式通道名稱傳送給使用者名稱 Postmaster 的郵件會重新導向至 postmaster@local-host,其中 local-host 是本地主機名稱 (本機通道的名稱)。

copysendpost

「更多」

除非失敗的郵件上創建者的位址為空白,否則將失敗通知的副本傳送給 Postmaster。

copywarnpost

「更多」

將警告郵件的副本傳送至 Postmaster (除非未遞送郵件的創建者位址為空)。

errsendpost

「更多」

僅當無法將失敗通知傳回給創建者時,才將其副本傳送給 Postmaster。

errwarnpost

「更多」

僅當無法將警告通知傳回給創建者時,才將警告郵件的副本傳送給 Postmaster。

includefinal

「更多」

在遞送通知中納入最終形式的收件者位址。

nonurgentnotices

「更多」

指定在非緊急優先順序的郵件之通知傳送及郵件傳回之前可以經過的時間。

noreturnaddress

「更多」

使用 RETURN_ADDRESS 選項值作為 Postmaster 位址名稱。

noreturnpersonal

「更多」

使用 RETURN_PERSONAL 選項值作為 Postmaster 個人名稱。

normalnotices

「更多」

指定在一般優先順序的郵件之通知傳送及郵件傳回之前可以經過的時間。

nosendpost

「更多」

停用將所有失敗郵件的副本傳送至 Postmaster 的功能。

notices

「更多」

指定在通知傳送及郵件傳回之前可以經過的時間。

nowarnpost

「更多」

停用將警告郵件的副本傳送至 Postmaster 的功能。

postheadbody

「更多」

傳回郵件的標頭和內容。

postheadonly

「更多」

僅將標頭傳回給 Postmaster。

returnaddress

「更多」

指定本機 Postmaster 的傳回位址。

returnenvelope

「更多」

控制空白訊息封傳回位址的使用。

returnpersonal

「更多」

設定本機 Postmaster 的個人名稱。

sendpost

「更多」

啟用將所有失敗郵件的副本傳送至 Postmaster 的功能。

suppressfinal

「更多」

抑制通知郵件中的最終位址格式 (如果通知郵件中存在原始位址格式)。

urgentnotices

「更多」

指定在緊急優先順序的郵件之通知傳送及郵件傳回之前可以經過的時間。

useintermediate

「更多」

使用在清單延伸之後,但在使用者電子信箱名稱產生之前產生的中間格式。

warnpost

「更多」

啟用將警告郵件的副本傳送至 Postmaster 的功能。

處理控制與工作提交

(請參閱表 12-7,以瞭解更詳細的功能)

backoff

「更多」

嘗試重新遞送先前遞送失敗之郵件的頻率。可以用以下關鍵字置換:normalbackoffnonurgentbackoffurgentbackoff

bidirectional

「更多」

由主要程式和從屬程式提供服務的通道。

deferred

「更多」

識別和接受 Deferred-delivery: 標頭行指定的郵件創建者。

expandchannel

「更多」

指定因應用 expandlimit 而執行延遲延伸時所在的通道。

expandlimit

「更多」

當位址數量超過此限制時,「離線」處理內送的郵件。

filesperjob

「更多」

由單一工作處理的佇列項目數量。

immnonurgent

「更多」

提交緊急、一般與非緊急郵件之後,立即開始遞送。

master

「更多」

由主要程式提供服務的通道 (master)。

maxjobs

「更多」

可為通道並行執行的最大工作數量。

nodeferred

「更多」

指定不接受 Deferred-delivery: 標頭行。

nonurgentbackoff

「更多」

嘗試重新遞送非緊急郵件的頻率。

nonurgentblocklimit

「更多」

強制將大於此大小的郵件降為低於非緊急優先順序 (第二級優先順序),這表示這些郵件總是要等待下一個週期性工作來進一步處理。

normalbackoff

「更多」

嘗試重新遞送一般郵件的頻率。

normalblocklimit

「更多」

強制將大於此大小的郵件設定為非緊急優先順序。

noservice

「更多」

必須透過 CHARSET-CONVERSION 啟用對進入此通道之郵件的服務轉換。

pool

「更多」

指定通道的儲存區。必須後接目前通道的遞送工作匯集時所在的儲存區名稱。

service

「更多」

無條件啟用服務轉換,不論 CHARSET-CONVERSION 項目為何。

slave

「更多」

由從屬程式提供服務的通道 (slave)。

threaddepth

「更多」

透過多重執行緒 SMTP 用戶端觸發新執行緒的郵件數量。

transactionlimit

 

限制每個連線允許的郵件數目。

urgentbackoff

「更多」

嘗試重新遞送緊急郵件的頻率。

urgentblocklimit

「更多」

強制將大於此大小的郵件設定為一般優先順序。

user

「更多」

用於管道通道,指示執行時使用的使用者名稱。

敏感性限制

sensitivitycompanyconfidential

「更多」

郵件能接受的敏感性上限。

sensitivitynormal

「更多」

Normal 是郵件能接受的敏感性上限。

sensitivitypersonal

「更多」

Personal 是郵件能接受的敏感性上限。

sensitivityprivate

「更多」

Private 是郵件能接受的敏感性上限。

對郵件、使用者配額、權限和認證嘗試的限制

alternatechannel

「更多」

alternateblocklimit、alternatelinelimit 與 alternaterecipientlimit 的替代目標通道。

alternateblocklimit

「更多」

指定在郵件傳送至替代通道之前,郵件中的區塊數量限制。

alternatelinelimit

「更多」

指定在郵件傳送至替代通道之前,郵件中的行數限制。

alternaterecipientlimit

「更多」

指定在郵件傳送至替代通道之前,郵件中的收件者數量限制。

blocklimit

「更多」

每封郵件允許的 MTA 區塊最大數量。

disconnectbadauthlimit

「更多」

對中斷連線之前階段作業內所允許的不成功的認證嘗試的次數的限制。

disconnectbadcommandlimit

「更多」

限制階段作業錯誤指令的數目。

disconnectrecipientlimit

「更多」

限制階段作業收件者的數目。

disconnectrejectlimit

「更多」

限制被拒絕的收件者之數目。

disconnecttransaction-
limit

「更多」

限制作業事件的數目。

headerlimit

「更多」

對主要 (最外層) 郵件標頭最大大小的限制。

holdexquota

「更多」

扣留超過配額的使用者之郵件。

holdlimit

「更多」

當內送的郵件之位址數量超過此限制時,扣留該郵件。

linelength

「更多」

逐個通道地限制允許的郵件行最大長度。

linelimit

「更多」

每封郵件允許的最大行數。

maxblocks

「更多」

指定郵件中允許的最大區塊數。

maxlines

「更多」

指定郵件中允許的最大行數。

nameparameterlengthlimit

「更多」

控制名稱內容類型和檔案名稱內容處理參數的截斷點。

noblocklimit

「更多」

不限制每封郵件允許的 MTA 區塊數量。

noexquota

「更多」

將傳送給超過配額的使用者之所有郵件傳回給創建者。

nolinelimit

「更多」

不限制每封郵件允許的行數。

nonurgentblocklimit

「更多」

強制將大於此大小的郵件降為低於非緊急優先順序 (第二級優先順序),這表示這些郵件總是要等待下一個週期性工作來進一步處理。

normalblocklimit

「更多」

強制將大於此大小的郵件設定為非緊急優先順序。

parameterlengthlimit

「更多」

控制一般內容類型和內容處理參數的截斷點。

recipientcutoff.

「更多」

如果收件者數目超過此值,則拒絕郵件。

recipientlimit

「更多」

限制郵件將接受的收件者位址之數目。

rejectsmtplonglines

「更多」

拒絕行長度超過 1000 個字元 (包括 CRLF) 的郵件。

sourceblocklimit

「更多」

每封內送的郵件允許的 MTA 區塊最大數量。

truncatesmtplonglines

「更多」

行長度超過 1000 個字元時,截斷該行。

wrapsmtplonglines

「更多」

行長度超過 1000 個字元時換行。

urgentblocklimit

「更多」

強制將大於此大小的郵件設定為一般優先順序。

SMTP 認證、SASL 與 TLS

(請參閱「更多」,以瞭解更詳細的功能)

authrewrite

「更多」

用於來源通道,讓 MTA 將經認證的創建者資訊 (如果有) 傳至標頭。

maysaslserver

「更多」

允許用戶端嘗試使用 SASL 認證。

maytls

「更多」

使 MTA 為內送的連線提供 TLS 並對外寄的連線嘗試 TLS。

maytlsclient

「更多」

在傳送外寄的郵件時,如果是傳送至支援 TLS 的 SMTP 伺服器,則 MTA SMTP 用戶端將嘗試使用 TLS。

maytlsserver

「更多」

MTA SMTP 伺服器將公佈其支援 STARTTLS 延伸,並將在接收郵件時允許使用 TLS。

msexchange

「更多」

用於 TCP/IP 通道,告知 MTA 此通道與 Microsoft Exchange 閘道和用戶端通訊。

mustsaslserver

「更多」

SMTP 伺服器不接受郵件,除非遠端用戶端認證成功。

musttls

「更多」

堅持要求在外寄的與內送的連線中都使用 TLS。

musttlsclient

「更多」

傳送外寄的郵件時,MTA SMTP 用戶端將堅持要求使用 TLS (MTA 將發出 STARTTLS 指令,而且該指令必須成功)。

musttlsserver

「更多」

MTA SMTP 伺服器將公佈其支援 STARTTLS 延伸,並將在接收內送的郵件時堅持要求使用 TLS。

nomsexchange

「更多」

預設。

nosasl

「更多」

不允許或不嘗試使用 SASL 認證。

nosaslserver

「更多」

不允許使用 SASL 認證。

notls

「更多」

不允許或不嘗試使用 TLS。

notlsclient

「更多」

MTA SMTP 用戶端不會對外寄的連線嘗試使用 TLS (在外寄的連線期間不會發出 STARTTLS 指令)。

notlsserver

「更多」

MTA SMTP 伺服器將不允許對內送的連線使用 TLS (SMTP 伺服器不會公佈 STARTTLS 延伸,指令本身也不會被接受)。

saslswitchchannel

「更多」

當用戶端成功使用 SASL 時,使進來的連線切換至指定的通道。

tlsswitchchannel

「更多」

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

SMTP 指令和協定

(請參閱表 12-4,以瞭解更詳細的功能)

allowetrn

「更多」

接受 ETRN 指令。

blocketrn

「更多」

封鎖 ETRN 指令。

checkehlo

「更多」

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

disableetrn

「更多」

停用對 ETRN SMTP 指令的支援。

domainetrn

「更多」

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

domainvrfy

「更多」

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

ehlo

「更多」

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

eightbit

「更多」

通道支援八位元字元。

eightnegotiate

「更多」

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

eightstrict

「更多」

拒絕具有包含未經協商之八位元資料的標頭的郵件。

expnallow

「更多」

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

expndisable

「更多」

無條件停用 EXPN

expndefault

「更多」

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

localvrfy

「更多」

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

mailfromdnsverify

「更多」

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

noehlo

「更多」

不使用 EHLO 指令。

nomailfromdnsverify

「更多」

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

nosendetrn

「更多」

不傳送 ETRN 指令。

nosmtp

「更多」

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

novrfy

「更多」

不發出 VRFY 指令。

sendetrn

「更多」

傳送 ETRN 指令。

sevenbit

「更多」

不支援 8 位元字元;8 位元字元必須經過編碼。

silentetrn

「更多」

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

smtp

「更多」

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

smtp_cr

「更多」

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

smtp_crlf

「更多」

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

smtp_crorlf

「更多」

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

smtp_lf

「更多」

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

streaming

「更多」

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

vrfyallow

「更多」

對 VRFY 指令提供資訊回應。

vrfydefault

「更多」

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

vrfyhide

「更多」

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

TCP/IP 連線和 DNS 查詢支援

(請參閱表 12-5,以瞭解更詳細的功能)

cacheeverything

「更多」

快取所有連線資訊。

cachefailures

「更多」

僅快取連線失敗資訊。

cachesuccesses

「更多」

僅快取連線成功資訊。

connectalias

「更多」

遞送至收件者位址中列出的任一主機。

connectcanonical

「更多」

連線至 MTA 可以連線至的系統之主機別名。

daemon

「更多」

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

defaultmx

「更多」

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

defaultnameservers

「更多」

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

forwardcheckdelete

「更多」

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

forwardchecknone

「更多」

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

forwardchecktag

「更多」

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

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: 標頭中的主機名稱的所有郵件。

interfaceaddress

「更多」

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

lastresort

「更多」

指定最後一台主機。

mailfromdnsverify

「更多」

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

mx

「更多」

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

nameservers

「更多」

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

nocache

「更多」

不快取任何連線資訊。

nomailfromdnsverify

「更多」

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

nomx

「更多」

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

nonrandomemx

「更多」

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

port

「更多」

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

randommx

「更多」

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

single

「更多」

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

single_sys

「更多」

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

threaddepth

「更多」

透過多重執行緒 SMTP 用戶端觸發新執行緒的郵件數量。

其他

deferralrejectlimit

「更多」

設定錯誤 RCPT TO: 位址

dispositionchannel

「更多」

將程序通道置換為最初形成遞送狀態通知 (DSN) 佇列的位置。

destinationfilter

「更多」

用於在一般 MTA 通道上指定套用於外寄郵件之通道層級的篩選器。

filter

「更多」

接受描述篩選器檔案位置所必需的 URL 引數

nodestinationfilter

「更多」

通道任一方向均未啟用通道電子信箱篩選器。

nosourcefilter

「更多」

來源通道未啟用通道電子信箱篩選器。

nofilter

「更多」

該預設表示此通道未啟用使用者電子信箱篩選器。

notificationchannel

「更多」

將程序通道置換為最初形成郵件處理通知 (MDN) 佇列的位置。

sourcefilter

「更多」

用於在一般 MTA 通道上指定套用於內送的郵件之通道層級的篩選器

submit

「更多」

用於將通道標記為僅供提交通道。

user

「更多」

用於管道通道,指示執行時使用的使用者名稱。


配置通道預設

許多配置涉及到對所有或幾乎所有通道重複使用各種通道關鍵字。維護這樣一種配置不僅繁瑣而且容易出錯。為簡化某些配置,您可以為各種通道指定預設關鍵字。

例如,配置檔案中的以下一行表示跟隨在該行之後的所有通道區塊都將繼承該行中指定的關鍵字:

defaults keyword1 keyword2 keyword3 ...

defaults 行可視為特殊的通道區塊,該區塊可變更預設關鍵字而無需實際指定通道。defaults 行也不需要其他任何通道區塊資訊行 (如有指定,都會被忽略)。

可以指定 defaults 行的數量,數量沒有限制,多個 defaults 行的效果會累積,最後遇到的 (從上向下讀取) 行具有較高的優先順序。

無條件消除配置檔案中從某點 (例如,外部檔案中通道區塊獨立區段的起點) 開始的所有 defaults 行的效果可能會有用。nodefaults 行就用於此目的。例如,在配置檔案中插入以下行,就可使先前所有預設通道所建立的所有設定無效,並讓配置返回到未指定預設時要套用的狀態。

nodefaults

如同常規通道區塊,每個 defaultsnodefaults 通道區塊與其他通道區塊之間都必須有空行來進行分隔。在配置檔案中,只有 defaultsnodefaults 通道區塊才能出現在本機通道之前。但是,如同任何其他通道區塊,這兩種通道區塊必須出現在最後一個重寫規則之後。


配置 SMTP 通道

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

表 12-3  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 Administration Reference」,以取得詳細資訊。

本節分為以下子節:

配置 SMTP 通道選項

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

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

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

如需有關所有通道選項關鍵字與語法的資訊,請參閱 Messaging Server Reference Manual

SMTP 指令和協定支援

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

表 12-4 概括本節所述的關鍵字。

表 12-4  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,則允許 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 指令。

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

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

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

ETRN 指令支援

關鍵字:allowetrnblocketrndisableetrndomainetrnsilentetrnsendetrn, nosendetrnnovrfy

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

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

SMTP 用戶端在 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 指令。sendetrn 關鍵字會告知 MTA,如果遠端 SMTP 伺服器表示支援 ETRN,就傳送 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 用戶端發出 SMTP VRFY 指令時的回應。

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

EXPN 支援

關鍵字:expnallowexpndisableexpndefault

expnallow 允許 EXPN,即使已在 SMTP 伺服器級別使用 DISABLE_EXPAND SMTP 通道選項停用它。expndisable 無條件停用 EXPN。如果 SMTP 伺服器設定為允許 EXPN (預設),則允許 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 位元字元的 MIME 編碼 (其中 8 位元資料絕對不合法)。如果尚未指定 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 協定不允許使用八位元,「除非遠端 SMTP 伺服器明確表示支援允許使用八位元的 SMTP 延伸」。某些傳輸 (例如延伸的 SMTP) 可以實際支援某種協商形式,以確定是否可以傳輸八位元字元。因此,極力建議使用 eightnegotiate 關鍵字來指示通道在協商失敗時編碼郵件。這是所有通道的預設;不支援協商的通道只假定傳輸能夠處理八位元資料。

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

協定串流

關鍵字:streaming

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

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

串流值有效範圍為 0 到 3。數值 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-5 列出本節所述的 TCP/IP 連線和 DNS 查詢關鍵字。

表 12-5  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 至主機名稱轉譯,而且僅 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。另請參閱「更多」saslswitchchannel「更多」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 章「配置安全性和存取控制」中。

maysaslservermustsaslservernosaslnosaslserverswitchchannelsaslswitchchannel 通道關鍵字可用於將 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-6 接受所需的位元值。

表 12-6  authrewrite 位元值 

位元

描述

0

1

請勿做任何變更 (預設)

1

2

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

2

4

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

3

8

在名為 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-sender: 標頭欄位。(請注意,通常情況下請勿置換 From:欄位。)

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

4

16

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

5

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 時被切換至指定的通道。它接受所需的值,以指定要切換至哪個通道。


配置郵件處理和遞送

您可以根據特定準則來配置伺服器嘗試遞送郵件的時機。還可以指定工作處理的參數,例如服務工作的處理限制或何時產生新的 SMTP 通道執行緒。本節描述以下內容:

如需有關郵件處理和遞送的概念性資訊,請參閱「工作主控台」和「工作控制器檔案」。

表 12-7 概括本節所述的關鍵字。

表 12-7  郵件處理和遞送關鍵字 

關鍵字

定義

立即遞送

定義郵件的立即遞送規格

immnonurgent

提交緊急、一般與非緊急郵件之後,立即開始遞送。

通道定向性

指定為通道提供服務的程式的類型

bidirectional

通道由主要程式和從屬程式提供服務。

master

通道由主要程式提供服務 (master)。

slave

通道由從屬程式提供服務 (slave)。

延遲遞送

定義延遲工作的遞送規格

backoff

指定嘗試重新遞送延遲郵件的頻率。可以用 normalbackoffnonurgentbackoffurgentbackoff 來置換。

deferred

實作識別和接受 Deferred-delivery: 標頭行指定的郵件創建者。

nodeferred

預設。指定不接受 Deferred-delivery: 標頭行。

nonurgentbackoff

嘗試重新遞送非緊急郵件的頻率。

normalbackoff

嘗試重新遞送一般郵件的頻率。

urgentbackoff

嘗試重新遞送緊急郵件的頻率。

基於大小的郵件優先順序

根據郵件大小定義郵件優先順序

nonurgentblocklimit

強制將大於此大小的郵件降為低於非緊急優先順序 (第二級優先順序),這表示這些郵件總是要等待下一個週期性工作來進一步處理。

normalblocklimit

強制將大於此大小的郵件設定為非緊急優先順序。

urgentblocklimit

強制將大於此大小的郵件設定為一般優先順序。

通道執行工作的處理儲存區

為處理不同緊急郵件和延遲郵件的工作指定儲存區

pool

指定通道執行時所在的儲存區。

after

指定通道執行前的時間延遲。

服務工作限制

針對每個工作指定可處理的服務工作數量與郵件檔案最大數量

maxjobs

為通道指定可以並行執行的最大工作數量。

filesperjob

指定由單一工作處理的佇列項目數量。

SMTP 通道執行緒

 

threaddepth

透過多重執行緒 SMTP 用戶端觸發新執行緒的郵件數量。

多位址延伸

定義對具有多位收件者的郵件的處理

expandlimit

當位址數量超過此限制時,「離線」處理內送的郵件。

expandchannel

指定因應用 expandlimit 而執行延遲延伸時所在的通道。

holdlimit

當內送的郵件之位址數量超過此限制時,扣留該郵件。

異動限制

指定連線異動限制

transactionlimit

限制每個連線允許的郵件數目。

無法遞送郵件通知

指定何時傳送無法遞送郵件通知

notices

指定在通知傳送及郵件傳回之前可以經過的時間。

nonurgentnotices

指定在非緊急優先順序的郵件之通知傳送及郵件傳回之前可以經過的時間。

normalnotices

指定在一般優先順序的郵件之通知傳送及郵件傳回之前可以經過的時間。

urgentnotices

指定在緊急優先順序的郵件之通知傳送及郵件傳回之前可以經過的時間。

設定通道定向性

關鍵字:masterslavebidirectional

這三個關鍵字可用於指定通道是否由主要程式 (master)、從屬程式 (slave) 或兩者 (bidirectional) 來提供服務。如果這三個關鍵字都未指定,則預設為 bidirectional。這些關鍵字可決定當郵件在通道上形成佇列時,MTA 是否啟動遞送活動。

這些關鍵字的使用反映相應通道程式的某些基本特徵。MTA 支援的各種通道的描述都指示這些關鍵字應在何時及何處使用。

實作延遲遞送日期

關鍵字:deferrednodeferredimmnonurgent

deferred 通道關鍵字實作識別和接受 Deferred-delivery: 標頭行指定的郵件創建者。包含未來 deferred 遞送日期的郵件,會保留在通道佇列中,直到郵件過期被傳回,或到達延遲遞送日期。請參閱 RFC 1327,以取得有關 Deferred-delivery: 標頭行的格式與運作的詳細資訊標頭行指定的郵件創建者。

關鍵字 nodeferred 為預設。必須認識到對延遲郵件處理的支援由 RFC 1327 指定,它的實際有效實作可讓人們使用郵件系統來延伸他們的磁碟配額,這一點很重要。

關鍵字 immnonurgent 在提交緊急、一般與非緊急郵件之後,立即開始遞送。

指定遞送失敗之郵件的重試頻率

關鍵字:backoffnonurgentbackoffnormalbackoffurgentbackoffnotices

依預設,遞送失敗之郵件的遞送重試頻率取決於該郵件的優先順序。遞送嘗試之間的預設間隔時間 (以分鐘為單位) 顯示如下。優先順序後的第一個數字指示初次遞送失敗後第一次嘗試重新遞送的時間 (分鐘數):

緊急:30, 60, 60, 120, 120, 120, 240
一般:60, 120, 120, 240, 240, 240, 480
非緊急:120, 240, 240, 480, 480, 480, 960

對於緊急郵件,嘗試重新遞送的時間是初次遞送失敗後 30 分鐘,第一次重試後 60 分鐘,第二次重試後 60 分鐘,第三次重試後 120 分鐘,以此類推。在指定的最後一次重試時間之後,都以相同的間隔時間重複。因此,對於緊急郵件,會每 240 分鐘重試一次。

遞送嘗試會持續一段時間,這段時間由 noticesnonurgentnoticesnormalnoticesurgentnotices 關鍵字指定。如果無法成功遞送,就會產生遞送失敗通知,該郵件會傳回給寄件者。(如需有關 notices 關鍵字的詳細資訊,請參閱「設定通知郵件遞送間隔時間」。)

backoff 關鍵字可讓您為不同優先順序的郵件指定自訂的遞送重試間隔時間組。nonurgentbackoff 指定非緊急郵件的間隔時間。normalbackoff 指定一般郵件的間隔時間。urgentbackoff 指定緊急郵件的間隔時間。如果這些關鍵字均未指定,backoff 會為所有郵件指定間隔時間,而不論其優先順序為何。

範例如下:

urgentbackoff "pt30m" "pt1h" "pt2h" "pt3h" "pt4h" "pt5h" "pt8h" "pt16h"

此時,緊急郵件嘗試重新遞送的時間是初次遞送失敗後 30 分鐘,第一次遞送嘗試後一小時 (初次遞送失敗後 1 小時 30 分鐘),第二次遞送嘗試後兩小時,第三次後三小時,第四次後四小時,第五次後五小時,第六次後八小時,第七次後十六小時。後續嘗試會每 16 小時執行一次,直至達到 notices 關鍵字指定的時間段為止。如果無法成功遞送,就會產生遞送失敗通知,該郵件會傳回給寄件者。請注意,間隔時間語法位於 ISO 8601P 中,在「Sun Java System Messaging Server Administration Reference」中描述。

在下一個範例中,

normalbackoff "pt30m" "pt1h" "pt8h" "p1d" "p2d" "p1w"

一般郵件嘗試重新遞送的時間是初次遞送失敗後 30 分鐘,第一次遞送嘗試後一小時,第二次嘗試後八小時,第三次後一天,第四次後兩天,第五次後一星期,而後每星期重複一次,直至達到 notices 關鍵字指定的時間段為止。如果無法成功遞送,就會產生遞送失敗通知,該郵件會傳回給寄件者。

在最後一個範例中,

backoff "pt30m" "pt120m" "pt16h" "pt36h" "p3d"

不論郵件的優先順序為何 (除非以 nonurgentbackoffnormalbackoffurgentbackoff 置換),所有遞送失敗的郵件嘗試重新遞送的時間都會是初次遞送失敗後 30 分鐘,第一次重新嘗試後兩小時,第二次嘗試後十六小時,第三次後三十六小時,第四次後三天,而後每三天重複一次,直至達到 notices 關鍵字指定的時間段為止。如果無法成功遞送,就會產生遞送失敗通知,該郵件會傳回給寄件者。

通道執行工作的處理儲存區

關鍵字:pool

您可以將各種通道配置為在同一儲存區中執行,以共用資源。您可能想將其他通道配置為在特定通道的專用儲存區中執行。在各儲存區中,郵件會根據其優先順序,自動排序為不同的處理佇列。儲存區中優先順序較高的郵件會比優先順序較低的郵件先得到處理。(請參閱基於大小的郵件優先順序。)

使用 pool 關鍵字可以逐個通道地選取建立工作的儲存區。pool 關鍵字必須後接目前通道的遞送工作匯集時所在的儲存區名稱。儲存區名稱包含的字元不應超過十二個。

如需有關工作控制器概念和配置的進一步資訊,請參閱「工作控制器檔案」、「工作主控台」和「服務工作限制」。

服務工作限制

關鍵字:maxjobsfilesperjob

每次郵件在通道中形成佇列時,工作控制器均可確保有一項遞送郵件的工作正在執行。這可能涉及到啟動新的工作程序、新增執行緒或只指明工作已在執行中。但是,單一服務工作可能不足以確保及時遞送所有的郵件。(如需有關工作控制器概念和配置的進一步資訊,請參閱「工作控制器檔案」、「通道執行工作的處理儲存區」和「工作主控台」。)

對於任何給定的安裝,都會啟動合理的最大數量的程序與執行緒以遞送郵件。此最大數量取決於幾個因素,例如處理器的數量、磁碟的速度和連線的特徵。在 MTA 配置中,可以控制以下內容:

為執行給定通道而啟動的程序最大數量,是對通道設定的 maxjobs 和為通道執行時所在的儲存區設定的 JOB_LIMIT 的最小值。

假定有一封郵件需要處理。通常,工作控制器會啟動新的程序,詳情如下:

尤其對於 SMTP 通道,新的執行緒或程序會在不同主機的郵件形成佇列時啟動。因此,對於 SMTP 通道,工作控制器會啟動新的程序,詳情如下。假定有一封郵件需要處理:

另請參閱 SMTP 通道執行緒

filesperjob 關鍵字可用於使 MTA 建立額外的服務工作。此關鍵字接受單一正整數參數,指定在處理佇列項目 (即檔案) 的多個服務工作建立之前,有多少個佇列項目必須傳送至關聯的通道。如果此值小於或等於零,則表示佇列只請求一個服務工作。不指定關鍵字就相當於指定零值。此關鍵字的效果已經最大化;較大的估算數量將是實際建立的服務工作數量。

filesperjob 關鍵字會以實際佇列項目或檔案的數量除以給定值。請注意,給定郵件所產生的佇列項目數量為大量因素所控制,包括但不僅限於 singlesingle_sys 關鍵字的使用,以及在郵件收件人清單中標頭修改動作的規格。

maxjobs 關鍵字設定可並行執行之服務工作總數的上限。此關鍵字之後必須加整數值;如果服務工作的估算數量大於此值,則實際上只會建立 maxjobs 指定之數量的工作。如果未指定 maxjobs,則預設值為 100。通常,maxjobs 設定的值應小於或等於通道使用的任何服務儲存區中可同時執行的工作總數。

設定連線異動限制

關鍵字:transactionlimit

transactionlimit 限制每個連線允許的郵件數目。此限制可透過以下方式來阻撓侵入者:

侵入者可經由 SMTP 連線並傳送多個 RCPT TO 指令,以嘗試推測出合法的電子郵件位址。透過限制異動所允許的無效 RCPT TO 數目可阻撓這類侵入。侵入者可能透過使用多個異動來進行回應,但藉由 transactionlimit,您可以限制一個 SMTP 階段作業所允許的異動數目。侵入者可使用多個階段作業,但此時他的成本會增高。連線阻塞可用於以各種方式限制階段作業的數目,在大多數情況下會使成本變得過高。

不過,我們一方也不是沒有負擔任何成本。某些 SMTP 用戶端對收件者限制、異動限制或兩種限制回應不佳。這些用戶端需要另行處理。但 TCP 通道選項可無條件套用至 SMTP 伺服器。解決方案為使用通道關鍵字和 switchchannel 將有問題的代理程式路由至具有較大限制的通道。

基於大小的郵件優先順序

關鍵字:urgentblocklimitnormalblocklimitnonurgentblocklimit

urgentblocklimitnormalblocklimitnonurgentblocklimit 關鍵字可用於指示 MTA 根據郵件大小降低郵件的優先順序。這些關鍵字會影響工作控制器在處理郵件時所使用的優先順序。

SMTP 通道執行緒

關鍵字:threaddepth

多重執行緒 SMTP 用戶端會將不同目的地的郵件排序至不同的執行緒。threaddepth 關鍵字可用於指示多重執行緒 SMTP 用戶端僅用任一執行緒處理指定數量的郵件,即使對均為同一目的地的郵件使用額外的執行緒 (因此通常是在一個執行緒中處理所有的郵件)。此關鍵字預設為 10。

每當通道儲存區的增加量超過 threaddepth 的一倍時,工作控制器會嘗試增加處理量,專門用於處理該通道之已形成佇列的郵件。對於多重執行緒通道,工作控制器會通知處理該通道郵件的任一工作啟動新的執行緒,如果所有工作所具有的執行緒都達到了該通道允許的最大數量 (tcp_* 通道之選項 MAX_CLIENT_THREADS),工作控制器會啟動新的程序。對於單一執行緒通道,會啟動新的程序。請注意,如果已達到該通道 (maxjobs) 或儲存區的工作限制 (JOB_LIMIT),則工作控制器將不啟動新的工作。

實質上,threaddepth 可控制如何排程積極的工作。讓我們考量以下兩種不同情況:

(1) 一般 (外寄) SMTP 通道

(2) 轉寄至智慧主機的 SMTP 通道

工作控制器可排序目標主機指定其目標為特定通道的郵件,並排程工作,以根據這些目標主機上的儲存區處理郵件。

第一個實例中有大量的目標主機,並且大多數目標主機的儲存區很小。許多執行緒將在那裡處於執行狀態,並且需要一切正常,但某些目標主機 (例如 aol、yahoo、hotmail 等) 可能無法正常運行,因為其中可能有大量的通訊流。如果執行緒深度為 128,則當儲存區達到 128 時,您才能向 yahoo 遞送另一個執行緒,但這是不夠的。

第二個實例中僅有一個目標主機,但可以將多個執行緒遞送至該主機。如果是所有執行緒均遞送至該主機,則預設值 10 就太小。

當通道連線的 SMTP 伺服器可處理多個同時連線時,尤其可以使用 threaddepth 對常駐程式路由器 TCP/IP 通道 (一種連線至單台特定 SMTP 伺服器的 TCP/IP 通道) 實現多執行緒。

多位址延伸

關鍵字:expandlimitexpandchannelholdlimit

大多數通道在傳送每個內送郵件的過程中,都支援多個收件者位址的規格。單封郵件中的多個收件者位址之規格,可能會導致郵件傳送處理延遲 (線上延遲)。如果延遲時間過長,就會發生網路逾時,然後導致重複嘗試提交郵件以及其他問題。

如果單封郵件中指定的位址數量超過給定數量,則 MTA 提供的一項特殊功能會強制延遲 (離線) 處理。延遲處理郵件可以大幅降低線上延遲。但請注意,並不能完全避免處理時間的延遲。

這項特殊功能可藉由通道與關鍵字組合來啟動,例如通用 reprocessing 通道和 expandlimit 關鍵字。expandlimit 關鍵字接受整數引數,指定延遲處理之前,應接受來自該通道的郵件中的多少個位址。如果未指定 expandlimit 關鍵字,則預設值為無限大。數值 0 將強制延遲處理來自該通道的所有內送的位址。

不必對本機通道或 reprocessing 通道本身指定 expandlimit 關鍵字,這種規格所造成的結果無法預測。

實際用於執行延遲處理的通道可以使用 expandchannel 關鍵字來指定;如果未指定 expandchannel,依預設會使用 reprocessing 通道,但是其他一些重新處理通道或處理通道可以用於特殊用途。如果執行延遲處理的通道是透過 expandchannel 指定的,則該通道應為重新處理通道或處理通道;其他種類的通道規格可能會導致無法預測的結果。

reprocessing 通道或用於執行延遲處理的任何通道,都必須加入 MTA 配置檔案中,以使 expandlimit 關鍵字生效。如果您的配置是由 MTA 配置公用程式建立的,則您應該已具有重新處理通道。

垃圾電子郵件的一個特徵就是通常具有特大的收件者位址清單。holdlimit 關鍵字告知 MTA 應將進入通道且導致收件者數量超過指定數量的郵件標記為 .HELD 郵件,並且在 reprocess 通道 (或透過 expandchannel 關鍵字指定的任何通道) 上形成佇列。這些檔案將在 reprocess 佇列中保持未處理狀態,等待 MTA Postmaster 手動介入。

啟用服務轉換

關鍵字:servicenoservice

service 關鍵字可無條件啟用服務轉換,不論 CHARSET-CONVERSION 項目為何。如果已設定 noservice 關鍵字,則必須透過 CHARSET-CONVERSION 啟用進入此通道之郵件的服務轉換。


配置位址處理

本節描述用於位址處理的關鍵字。包含以下各節:

位址類型和慣例

關鍵字:822733uucpheader_822header_733header_uucp

這組關鍵字控制通道支援的位址類型。傳輸層 (郵件訊息封) 中使用的位址和郵件標頭中使用的位址存在差異。

822 (sourceroute)

來源路徑訊息封位址。此通道支援完整 RFC 822 格式的訊息封定址慣例,包含來源路徑。關鍵字 sourceroute 也可用作 822 的同義詞。如果未指定其他訊息封位址類型關鍵字,則該關鍵字為預設。

733 (percents)

百分比符號訊息封位址。此通道支援完整 RFC 822 格式的訊息封定址慣例,但來源路徑除外;來源路徑必須使用百分比符號慣例來重寫。關鍵字 percents 也可用作 733 的同義詞。


注意

在 SMTP 通道上使用 733 位址慣例會導致這些慣例在 SMTP 訊息封中的傳輸層位址上繼續存在。這樣可能會違背 RFC 821。只有在您確實需要時才能使用 733 位址慣例。


uucp (bangstyle)

bang 樣式訊息封位址。此通道在訊息封中使用符合 RFC 976 bang 樣式位址慣例的位址 (例如,UUCP 通道)。關鍵字 bangstyle 也可用作 uucp 的同義詞。

header_822

來源路徑標頭位址。此通道支援完整 RFC 822 格式的標頭定址慣例,包含來源路徑。如果未指定其他標頭位址類型關鍵字,則該關鍵字為預設。

header_733

百分比符號標頭位址。此通道支援 RFC 822 格式的標頭定址慣例,但來源路徑除外;來源路徑必須使用百分比符號慣例來重寫。


注意

在郵件標頭中使用 733 位址慣例可能會違背 RFC 822 和 RFC 976。只有在您確定該通道連線至無法處理來源路徑位址的系統時,才能使用此關鍵字。


header_uucp

UUCP 或 bang 樣式標頭位址。建議不要使用此關鍵字。使用此關鍵字會違背 RFC 976。

解譯使用 ! 和 % 的位址

關鍵字:bangoverpercentnobangoverpercentpercentonly

系統始終會根據 RFC 822 和 RFC 976 解譯位址。但是,對於上述標準無法定址的某些複合位址,在處理時會存在分歧。具體來說,A!B%C 形式的位址可能會被解譯為:

雖然 RFC 976 表示郵件程式可以使用後一組慣例來解譯位址,但並未表示需要這種解譯。在某些情況下,使用前面的解譯可能更好。

bangoverpercent 關鍵字強制使用前面的 A!(B%C) 解譯。nobangoverpercent 關鍵字強制使用後面的 (A!B)%C 解譯。nobangoverpercent 為預設。


注意

此關鍵字不會影響對 A!B@C 形式之位址的處理。這些位址始終會被作為 (A!B)@C 來處理。RFC 822 和 RFC 976 均指定了此種處理方式。


percentonly 關鍵字會忽略 bang 路徑。設定此關鍵字後,百分比會被解譯,以進行路由。

在位址中新增路由資訊

關鍵字:exproutenoexprouteimproutenoimproute

MTA 所處理的定址模型假定所有系統均知悉其他所有系統的位址,並瞭解如何到達這些系統。不幸的是,這種設想無法適用於所有情況,例如當通道連線至一個或多個不瞭解外界情形的系統 (例如,專用 TCP/IP 網路中的內部機器) 時。此通道上的這些系統位址在該站點以外的遠端系統上可能不合法。如果您希望能回覆這類位址,則這類位址必須包含來源路徑,告知遠端系統透過本地機器路由郵件。然後本地機器就會 (自動) 將郵件路由至這些機器。

exproute 關鍵字 (「explicit routing」的縮寫) 告知 MTA,當關聯通道的位址被傳送至遠端系統時,該通道需要明確的路由。如果對通道指定了此關鍵字,MTA 會將包含本機系統名稱 (或本機系統目前的別名) 的路由資訊加入符合此通道的所有標頭位址與所有訊息封 From: 位址中。noexproute 為預設,指定不應加入路由資訊。

EXPROUTE_FORWARD 選項可用於限制 exproute 的動作為指向反向位址。當 MTA 透過無法為自身執行正確路由的通道連線至系統時,會發生另一種情況。在這種情況下,當郵件傳送至的通道連線至能力不足的系統時,必須為郵件中使用的所有關聯其他通道的位址指示路由。

隱式路由和 improute 關鍵字可用於處理此種情況。MTA 瞭解,當所有符合其他通道的位址用於傳送至標記為 improute 之通道的郵件時,這些位址都需要路由。預設為 noimproute,它指定經指定通道發出的郵件之位址中,不應加入路由資訊。IMPROUTE_FORWARD 選項可用於限制 improute 的動作為指向反向位址。

exprouteimproute 關鍵字應謹慎使用。這些關鍵字會使位址更長、更複雜,並可能使其他系統所使用的智慧路由方案失敗。明確的路由和隱式路由不應與指定路徑產生混淆。指定路徑用於將重寫規則中的路由資訊插入位址中。這由特殊的 A@B@C 重寫規則範本來啟動。

指定路徑啟動後,可套用至標頭與訊息封中的所有位址。指定路徑由特殊的重寫規則來啟動,因此通常與目前使用的通道無關。另一方面,明確的路由和隱式路由都是針對各通道進行控制的,插入的路徑位址始終為本機系統。

停用明確的路由位址之重寫功能

關鍵字:routelocal

將位址重寫至通道時,routelocal 通道關鍵字會使 MTA 嘗試「短路」位址中任何明確的路由。明確路由的位址 (使用 !、% 或 @ 字元) 已簡化。

對「內部」通道 (例如內部 TCP/IP 通道) 使用此關鍵字,可使 SMTP 轉送封鎖功能的配置較為簡單。

請注意,此關鍵字不應用於可能需要明確的 % 或其他路由的通道。

郵件移出佇列時重寫位址

關鍵字:connectaliasconnectcanonical

MTA 通常會在郵件於其通道上形成佇列時重寫位址。郵件移出佇列期間不會執行額外的重寫。當主機名稱變更,而通道佇列中存在仍要傳送至舊名稱的郵件時,就會發生潛在的問題。

connectalias 關鍵字告知 MTA 遞送至收件者位址中列出的任何主機。這是預設。關鍵字 connectcanonical 告知 MTA 連線至 MTA 可以連線的系統之主機別名。

指定校正不完整的位址時要使用的主機名稱

關鍵字:remotehostnoremotehostdefaulthostnodefaulthost

MTA 通常會接收來自錯誤配置或不符合的郵件程式和 SMTP 用戶端的不包含網域名稱的位址。MTA 會在允許這些位址繼續傳送之前,嘗試將它們合法化。它會透過在位址上附加網域名稱來達此目的 (例如,將 @siroe.com 附加至 mrochek)。

對於缺少網域名稱的訊息封 To: 位址,MTA 始終會假定應附加本地主機名稱。而對於其他位址 (例如 From: 位址),如果是 MTA SMTP 伺服器,則至少有兩個合理的網域名稱選擇:本地 MTA 主機名稱和用戶端 SMTP 報告的遠端主機名稱。或在有些情況下,可能還有第三個合理的選擇,即,為進入該通道的郵件加入特定的網域名稱。目前,前兩個選擇都可能是正確的,因為這兩者可能發生的機率較高。處理配置不正確的 SMTP 用戶端時,適合使用遠端主機的網域名稱。處理簡易遠端郵件用戶端 (例如使用 SMTP 遞送郵件的 POP 或 IMAP 用戶端) 時,適合使用本地主機的網域名稱。或者,如果是簡易遠端郵件用戶端 (例如 POP 或 IMAP),用戶端應具有自己特定的網域名稱,此網域名稱並非本地主機的網域名稱,則可能適合加入特定的其他網域名稱。MTA 最理想的做法是允許逐個通道地進行選擇。

noremotehost 通道關鍵字指定應使用本地主機名稱。關鍵字 noremotehost 為預設。

defaulthost 通道關鍵字用於指定特定主機名稱以附加至不含網域名稱的內送的使用者 ID。使用者 ID 後必須加上網域名稱,才能成為完整的位址 (訊息封 From: 和標頭中的位址) 進入通道。(在提交通道中,defaulthost 關鍵字的第一個引數也會影響不含網域名稱的訊息封 To: 位址。)可以指定第二個網域名稱 (其中至少有一個小數點),用於使訊息封 To: 位址完整。nodefaulthost 為預設。

如「內送的郵件的替代通道 (切換通道)」一節所述,switchchannel 關鍵字可用於將內送的 SMTP 連線與特定通道相關聯。此功能可用於在通道上群組遠端郵件用戶端,在此通道上它們可以得到適當的處理。或者,較簡單的做法是部署符合標準的遠端郵件用戶端 (即便使用了多個不符合的用戶端),而非嘗試修正 MTA 主機上的整個網路的問題。

合法化無收件者標頭行的郵件

關鍵字:missingrecipientpolicy

RFC 822 (網際網路) 郵件必須包含收件者標頭行:To:Cc:Bcc: 標頭行。沒有上述標頭行的郵件是非法的。但是,有些不可靠的使用者代理程式和郵件程式 (例如,許多舊版 sendmail) 會傳送非法的郵件。

missingrecipientpolicy 關鍵字接受整數值,指定處理這類郵件的方法;如果未明確指定此關鍵字,則預設為 1 (原封不動地傳送非法郵件)。

表 12-8  missingrecipientpolicy 的值

動作

0

將訊息封 To: 中的收件者置於 To: 標頭行指定的郵件創建者。

1

原封不動地傳送非法郵件。

2

將訊息封 To: 中的收件者置於 To: 標頭行指定的郵件創建者。

3

將訊息封 To: 中的所有收件者置於單個 Bcc: 標頭行指定的郵件創建者。

4

產生群組建構 (例如「;」) To:標頭行,"To:Recipients not specified: ;"

5

產生空白 Bcc: 標頭行指定的郵件創建者。

6

拒絕郵件。

請注意,MISSING_RECIPIENT_POLICY 選項可用於將 MTA 系統預設為此運行方式。Messaging Server 的初始配置會將 MISSING_RECIPIENT_POLICY 設定為 1。

刪除非法空白收件者標頭

關鍵字:dropblanknodropblank

在 RFC 822 (網際網路) 郵件中,任何 To:Resent-To:Cc:Resent-Cc: 標頭都需要包含至少一個位址,即標頭的值不得為空。但是,有些郵件程式可以傳送這類非法標頭。如果對來源通道指定 dropblank 通道關鍵字,則會使 MTA 刪除內送的郵件中任何此類非法空白標頭。

啟用通道特定的反向資料庫用途

關鍵字:reversenoreverse

reverse 關鍵字會告知 MTA,如果存在位址反向資料庫或 REVERSE 對映,則在通道上形成佇列的郵件之位址應由位址反向資料庫或 REVERSE 對映進行反向檢查,可能還會予以修改。noreverse 可使在通道上形成佇列的郵件中的位址免於進行位址反向處理。reverse 關鍵字為預設。請參閱「將位址從內部格式轉換為公用格式」,以取得更多資訊。

啟用有限電子信箱編碼

關鍵字:restrictedunrestricted

有些郵件系統很難處理 RFC 822 所允許的全部位址類型。尤其常見的範例是配置檔案不正確的基於 sendmail 的郵件程式。加引號的本機部分 (或電子信箱規格) 經常帶來麻煩:

"smith, ned"@siroe.com

在 RFC 1137 中已經有方法可以解決這種麻煩之源。基本方法是從位址中移除引號,然後進行轉譯,將需要引號的字元對映至原子中允許的字元 (請參閱 RFC 822,以瞭解有關原子在此處使用時的定義)。例如,上述位址會變成:

smith#m#_ned@siroe.com

restricted 通道關鍵字告知 MTA 該通道連線至需要此編碼的郵件系統。然後,MTA 會在郵件寫入至通道時,對標頭位址和訊息封位址中加引號的本機部分進行編碼。而此通道上內送的位址會被自動解碼。unrestricted 關鍵字告知 MTA 不執行 RFC 1137 編碼和解碼。關鍵字 unrestricted 為預設。


注意

restricted 關鍵字適用於連線至無法接受加引號的本機部分之系統的通道。而不適用於實際產生加引號之本機部分的通道。(據假定,能夠產生此種位址的通道也能夠處理此種位址。)


產生 Return-path: 標頭行

關鍵字:addreturnpathnoaddreturnpath

通常,加入 Return-path: 標頭行由執行最終遞送的通道負責。但對於某些通道,例如 ims-ms 通道,由 MTA 加入 Return-path: 標頭比讓通道執行加入動作更高效。addreturnpath 關鍵字可使 MTA 在此通道上形成佇列時,加入 Return-path: 標頭。

從訊息封 To: 和 From: 位址建構 Received: 位址的限制

關鍵字:receivedfornoreceivedforreceivedfromnoreceivedfrom

receivedfor 關鍵字會指示 MTA,如果郵件只傳送給一位訊息封收件者,則在建構的 Received: 標頭行中納入訊息封 To: 位址。關鍵字 receivedfor 為預設。noreceivedfor 關鍵字指示 MTA 建構 Received: 標頭行,但不納入任何訊息封位址資訊。

receivedfrom 關鍵字指示 MTA,如果 MTA 出於某些原因 (例如某種郵件收件人清單延伸) 變更了訊息封 From: 位址,則在為內送的郵件建構 Received: 標頭行時,納入原始訊息封的 From: 位址。receivedfrom 為預設。noreceivedfrom 關鍵字指示 MTA 建構 Received: 標頭行,但不納入原始訊息封 From: 位址。

處理位址標頭行中的註釋

關鍵字:commentinccommentmapcommentomitcommentstripcommenttotalsourcecommentincsourcecommentmapsourcecommentomitsourcecommentstripsourcecommenttotal

只有在必要時,MTA 才解譯標頭行的內容。但是,所有包含位址的已註冊標頭行都必須被剖析,以重寫並消除縮寫形式的位址,否則就轉換成合法位址。在此過程中,如果重建標頭行,會擷取註釋 (括號中的字串),並可能對註釋進行修改或排除。

使用 commentinccommentmapcommentomitcommentstripcommenttotal 關鍵字可控制此種運作方式。commentinc 關鍵字告知 MTA 保留標頭行中的註釋。這是預設。關鍵字 commentomit 告知 MTA 移除定址標頭 (例如,To:From:Cc: 標頭行) 中的任何註釋標頭行。

關鍵字 commenttotal 告知 MTA 移除所有標頭行中的任何註釋,但 Received: 標頭行除外;通常不使用或建議不使用此關鍵字。commentstrip 關鍵字告知 MTA 刪除所有註釋欄位中的任何非原子字元。commentmap 關鍵字透過 COMMENT_STRINGS 對映表來執行註釋字串。

對來源通道,可使用 sourcecommentincsourcecommentmapsourcecommentomitsourcecommentstripsourcecommenttotal 關鍵字來控制此種運作方式。sourcecommentinc 關鍵字指示 MTA 保留標頭行中的註釋。這是預設。sourcecommentomit 關鍵字指示 MTA 移除定址標頭 (例如 To:、From: 和 Cc: 標頭) 中的任何註釋。sourcecommenttotal 關鍵字指示 MTA 移除所有標頭中的任何註釋,但 Received: 標頭除外;通常不使用或建議不使用此關鍵字。最後,sourcecommentstrip 關鍵字指示 MTA 刪除所有註釋欄位中的任何非原子字元。sourcecommentmap 關鍵字透過來源通道執行註釋字串。

這些關鍵字適用於任何通道。

COMMENT_STRINGS 對映表的語法如下所示:

(comment_text) | address

如果項目範本設定 $Y 旗標,則原始註釋將被指定的文字 (該文字應包括外圍的括
號) 取代。

處理位址標頭行中的個人名稱

關鍵字:personalincpersonalmappersonalomitpersonalstripsourcepersonalincsourcepersonalmapsourcepersonalomitsourcepersonalstrip

在重寫過程中,所有包含位址的標頭行都必須被剖析,以重寫並消除縮寫形式的位址,否則就轉換成合法位址。在此過程中,如果重建標頭行,則會擷取個人名稱
(角括號分隔的位址之前的字串),並可以對個人名稱進行選擇性修改或排除。

可以使用 personalincpersonalmappersonalomitpersonalstrip 關鍵字來控制此種運作方式。關鍵字 personalinc 告知 MTA 保留標頭行中的個人名稱。這是預設。關鍵字 personalomit 告知 MTA 移除所有個人名稱。關鍵字 personalstrip 告知 MTA 刪除所有個人名稱欄位中的任何非原子字元。personalmap 關鍵字指示 MTA 透過 PERSONAL_NAMES 對映表執行個人名稱。

對來源通道,可以使用 sourcepersonalincsourcepersonalmapsourcepersonalomitsourcepersonalstrip 關鍵字來控制此種運作方式。personalinc 關鍵字指示 MTA 保留標頭中的個人名稱。這是預設。sourcepersonalomit 關鍵字指示 MTA 移除所有個人名稱。最後,sourcepersonalstrip 指示 MTA 刪除所有個人名稱欄位中的任何非原子字元。sourcepersonalmap 關鍵字指示 MTA 透過來源通道執行個人名稱。

這些關鍵字適用於任何通道。

PERSONAL_NAMES 對映表探測的語法如下所示:

personal_name | address

如果範本設定 $Y 旗標,則原始個人名稱將被指定的文字取代。

指定 Alias 和 Alias 資料庫探測

關鍵字:aliaslocal

通常只有重寫至本機通道 (即 UNIX 上的 l 通道) 的位址會在 Alias 檔案和 Alias 資料庫供人查詢。aliaslocal 關鍵字可置於某個通道,使重寫至該通道的位址在 Alias 檔案和 Alias 資料庫中供人查詢。而所建立的查詢探測的確切形式由 ALIAS_DOMAINS 選項進行控制。

子位址處理

關鍵字:subaddressexactsubaddressrelaxedsubaddresswild

根據子位址的概念,原生通道和 ims-ms 通道會解譯位址 (尤其是 name+subaddress@domain 形式的位址) 本機部分 (電子信箱部分) 中的 + 字元,MTA 會將加號字元後面的電子信箱部分視為子位址。原生通道會將子位址視為額外的表面資訊,實際遞送至帳號名稱,而與子位址無關;ims-ms 通道會將子位址解譯為要遞送至的資料夾名稱。

子位址還會影響到依本機通道 (即 UNIX 上的 L 通道) 的別名查詢、依 aliaslocal 關鍵字標記的任何通道的別名查詢,以及依目錄通道的電子信箱查詢。對此類匹配的子位址之確切處理是可配置的:比對位址與項目時,MTA 始終先檢查整個電子信箱包括子位址是否完全相符;之後 MTA 是否要執行額外的檢查,則是可配置的。

subaddressexact 關鍵字指示 MTA 在項目匹配期間,不執行特殊的子位址處理;整個電子信箱,包括子位址,都必須符合項目,以使別名被視為相符。額外的比對
(尤其是萬用字元比對或移除子位址的比對) 不會執行。subaddresswild 關鍵字指示 MTA 在尋找包括整個子位址都完全相符的項目後,接著應尋找 name+* 形式的項目。subaddressrelaxed 關鍵字指示 MTA 在尋找完全相符且符合 name+* 形式的項目之後,應額外檢查名稱部分是否相符。使用 subaddressrelaxed,以下形式的別名項目符合名稱或名稱+子位址形式,一般名稱會轉換成新名稱,而名稱+子位址會轉換成新名稱+子位址。subaddressrelaxed 關鍵字為預設。

name: newname+*

因此,當別名或目錄通道正在使用中,但使用者希望接收使用任意子位址傳送的郵件時,subaddresswild 關鍵字或 subaddressrelaxed 關鍵字可能會有用。這兩個關鍵字使您不必為位址上各個子位址變體設定單獨的項目。

請注意,這兩個關鍵字只對本機通道 (即 UNIX 上的 L 通道)、目錄通道或透過 aliaslocal 關鍵字標記的任何通道有意義。

標準 Messaging Server 配置為在確實具有 subaddressrelaxed 運作方式 (如果未明確使用其他關鍵字,則為預設) 的 L 通道上轉送。

啟用通道特定的重寫規則檢查

關鍵字:rulesnorules

rules 關鍵字告知 MTA 對此通道強制執行通道特定的重寫規則檢查。這是預設。norules 關鍵字告知 MTA 不對此通道執行檢查。這兩個關鍵字通常用於除錯,在實際應用中很少使用。

移除來源路徑

關鍵字:dequeue_removeroute

dequeue_removeroute 關鍵字會在郵件移出佇列時,從訊息封 To: 位址中移除來源路徑。此關鍵字目前僅對 tcp-* 通道實作。它可用於將郵件傳送至未正確處理來源路徑的系統。

指定位址必須來自別名

關鍵字:viaaliasoptionalviaaliasrequired

viaaliasrequired 指定符合通道的任何最終收件者位址必須由別名產生。最終收件者位址是指執行別名延伸 (如果有關) 之後的相符項目。該位址無法作為收件者位址直接傳遞給 MTA;即,對於位址而言,僅重寫至通道還不夠。重寫至通道之後,位址還必須透過被視為真正符合通道的別名來延伸。

例如,必須將 viaaliasrequired 關鍵字用於本機通道,以避免遞送至任意帳號 (例如 UNIX 系統上任意的原生 Berkeley 電子信箱)。

預設為 viaaliasoptional,表示符合通道的最終收件者位址不需要由別名產生。


配置標頭處理

本節描述用於處理標頭和訊息封資訊的關鍵字。包含以下各節:

重寫內嵌式標頭

關鍵字:noinnerinner

只有在必要時,才會解譯標頭行的內容。但是,由於 MIME 郵件中可以嵌入郵件
(郵件/RFC822),因此可以包含多組郵件標頭。MTA 通常只會解譯和重寫最外面一組郵件標頭。也可以選擇告知 MTA 將標頭重寫套用於郵件中的內部標頭。

可以使用 noinnerinner 關鍵字來控制此種運作方式。關鍵字 noinner 告知 MTA 不重寫內部郵件標頭行。這是預設。關鍵字 inner 告知 MTA 剖析郵件並重寫內部標頭。這些關鍵字適用於任何通道。

移除選取的郵件標頭行

關鍵字:headertrimnoheadertrimheaderreadnoheaderreadinnertrimnoinnertrim

MTA 提供針對各通道在郵件中修整或移除選取的郵件標頭行的功能。此功能透過通道關鍵字與一個或兩個關聯標頭選項檔案組合而實現。標頭選項檔案格式在「Sun Java System Messaging Server Administration Reference」的 MTA 一章中描述。

headertrim 關鍵字指示 MTA 在處理原始郵件標頭之後,查閱與通道關聯的標頭選項檔案,並相應地修整已在目標通道上形成佇列的郵件中的標頭。noheadertrim 關鍵字會略過標頭修整。關鍵字 noheadertrim 為預設。

innertrim 關鍵字指示 MTA 對內部郵件部分 (即內嵌的 MESSAGE/RFC822 部分) 執行標頭修整。noinnertrim 關鍵字為預設,告知 MTA 不對內部郵件部分執行任何標頭修整。

headerread 關鍵字指示 MTA 在處理原始郵件標頭之前,查閱與通道關聯的標頭選項檔案,並相應地修整由來源通道形成佇列的郵件中的標頭。請注意,在另一方面,headertrim 標頭修整是在處理郵件之後使用的,而且是針對目標通道而非來源通道。noheaderread 關鍵字會略過形成佇列的郵件之標頭修整。noheaderread 為預設。

headeromitheaderbottom 關鍵字不同,headertrimheaderread 關鍵字適用於任何通道。但請注意,刪除郵件中的重要標頭資訊,可能會導致 MTA 作業發生錯誤。當您選擇移除或限制標頭時,必須極其謹慎。此功能的存在是因為偶爾會有一些情況,必須要移除或限制選取的標頭行。


警告

刪除郵件中的標頭資訊,可能會導致 MTA 作業發生錯誤。當您選擇移除或限制標頭時,必須謹慎。在一些罕見的情況下,必須移除或限制選取的標頭行,這些關鍵字就是為此而提供的。修整或移除任何標題行之前,您必須瞭解標頭行的用法,並考量移除該標題行可能會牽涉到哪些方面。


headertriminnertrim 關鍵字之標頭選項檔案的名稱形式為 channel_headers.opt,其中 channel 是標頭選項檔案關聯的通道名稱。同樣,headerread 關鍵字之標頭選項檔案的名稱形式為 channel_read_headers.opt。這些檔案儲存在 MTA 配置目錄 instance_root/imta/config/ 中。

產生/移除 X-Envelope-to: 標頭行

關鍵字:x_env_tonox_env_to

x_env_tonox_env_to 關鍵字控制在特定通道上形成佇列之郵件副本中 X-Envelope-to 標頭行的產生和抑制。在透過 single 關鍵字標記的通道上,x_env_to 關鍵字可讓這些標頭的產生,而 nox_env_to 則從形成佇列的郵件中移除這類標頭。預設為 nox_env_to

x_env_to 關鍵字還需要 single 關鍵字才能生效。

轉換日期為兩位數或四位數

關鍵字:datefourdatetwo

原始 RFC 822 規格在郵件標頭的日期欄位中需要兩位數年份。後來 RFC 1123 將其變更為四位數。但是,某些較舊的郵件系統無法適應四位數日期。此外,某些較新的郵件系統無法再接受兩位數日期。


注意

無法處理這兩種格式的系統是違反標準的。


datefourdatetwo 關鍵字控制 MTA 對郵件標頭日期中年份欄位的處理方式。關鍵字 datefour 為預設,指示 MTA 將所有年份欄位擴充為四位數。小於 50 的兩位數日期加上 2000,大於 50 的則加上 1900。


警告

關鍵字 datetwo 指示 MTA 移除四位數日期中的前兩位數。這是為了與需要兩位數日期的不符合郵件系統相容;不應用於其他任何目的。


在日期中指定星期

關鍵字:dayofweeknodayofweek

RFC 822 規格允許在郵件標頭的日期欄位前面加上星期規格。但是,有些系統無法適應星期資訊。這使某些系統不願納入此資訊,即使此資訊在標頭中非常有用。

dayofweeknodayofweek 關鍵字控制 MTA 處理星期資訊中的天。關鍵字 dayofweek 為預設,指示 MTA 保留任何星期資訊,如果日期和時間標頭中沒有此資訊,則加入此資訊。


警告

關鍵字 nodayofweek 指示 MTA 從日期和時間標頭中移除前面的任何星期資訊。這是為了與無法正確處理此資訊的不符合郵件系統相容;不應用於其他任何目的。


自動分割長標頭行

關鍵字:maxheaderaddrsmaxheaderchars

某些郵件傳送程式 (尤其是某些 sendmail 實作) 無法正確處理長標頭行。這不但經常造成標頭損毀,還造成錯誤的郵件拒絕。雖然嚴重違反標準,但卻是一個常見問題。

MTA 提供針對通道將長標頭行分割 (換行) 為多個各自獨立的標頭行的功能。maxheaderaddrs 關鍵字控制一行中可以顯示的位址數。maxheaderchars 關鍵字控制一行中可以顯示的字元數。這兩個關鍵字都需要單一整數參數,以指定相關限制。依預設,標頭行的長度和可以顯示的位址數均無限制。

標頭對齊和摺疊

關鍵字:headerlabelalignheaderlinelength

headerlabelalign 關鍵字控制在此通道上形成佇列的郵件標頭之對齊點;其引數的值為整數。對齊點就是標頭內容對齊時的邊界。例如,對齊點為 10 的範例標頭行外觀如下:

To:       joe@siroe.com
From:     mary@siroe.com
Subject:  Alignment test

預設的 headerlabelalign 為 0,這樣會使標頭不能對齊。headerlinelength 關鍵字可控制在此通道上形成佇列的郵件標頭行的長度。超過此長度的行根據 RFC 822 摺疊規則進行摺疊。

這些關鍵字僅控制郵件佇列中郵件的標頭格式;標頭的實際顯示通常由使用者代理程式控制。此外,標頭在網際網路上傳送時會依慣例重新格式化,因此這些關鍵字即使與不重新格式化郵件標頭的簡易使用者代理程式一併使用,可能也沒有什麼明顯效果。

指定標頭最大長度

關鍵字:maxprocchars

處理包含大量位址的長標頭行,會消耗大量的系統資源。maxprocchars 關鍵字用於指定 MTA 可以處理和重寫的標頭最大長度。標頭超過此長度的郵件仍會被接受和遞送;唯一不同之處是長標頭行不會進行任何重寫。需要單一整數引數。預設為處理任何長度的標頭。

敏感性檢查

關鍵字:sensitivitynormal, sensitivitypersonal, sensitivityprivate sensitivitycompanyconfidential

敏感性檢查關鍵字可設定通道可接受之郵件的敏感性上限。預設為 sensitivitycompanyconfidential;可接受任何敏感性的郵件。沒有 Sensitivity: 標頭的郵件會被視為一般郵件,即最低敏感性的郵件。敏感性高於此關鍵字指定敏感性的郵件,在通道上形成佇列時會被拒絕,螢幕上會顯示以下錯誤訊息:

對於所用的一個或多個路徑,郵件的敏感性過高

請注意,MTA 會針對每封郵件進行敏感性檢查,而非針對各收件者進行檢查:如果一位收件者的目標通道無法通過敏感性檢查,則對於所有的收件者,該郵件均被退回,而不只是針對與敏感通道關聯的那些收件者。

設定標頭中的預設語言

關鍵字:language

標頭中經編碼的文字可以使用特定語言。language 關鍵字指定預設語言。


附件和 MIME 處理

本節描述用於處理附件和 MIME 處理的關鍵字。包含以下各節:

忽略 Encoding: 標頭行

關鍵字:ignoreencodinginterpretencoding

MTA 可使用 Yes CHARSET-CONVERSION,將各種非標準郵件格式轉換成 MIME。尤其是,RFC 1154 格式使用非標準 Encoding: 標頭行指定的郵件創建者。但是,有些閘道會在此標頭行上加入錯誤的資訊,從而導致有時忽略此標頭行更好。ignoreencoding 關鍵字可指示 MTA 忽略任何 Encoding: 標頭行指定的郵件創建者。


注意

除非 MTA 已啟用 CHARSET-CONVERSION,否則此類標頭在任何情況下都會被忽略。interpretencoding 關鍵字可指示 MTA 注意任何 Encoding: 標頭行 (如果配置為執行此動作),而且該關鍵字為預設。


郵件/部分郵件的自動重新整理

關鍵字:defragmentnodefragment

MIME 標準提供郵件/部分內容類型,以將郵件斷成較小的部分。當郵件必須通過有大小限制或不可靠的網路時,這項功能會很有用,郵件分段程序提供「檢查點」,在網路於郵件傳送期間發生故障時,可減少後續重複傳送工作。每個部分均包含資訊,使郵件在到達目的地之後可以自動重新組合。

defragment 通道關鍵字和重新整理通道可用於在 MTA 中重新組合郵件。當通道標記為 defragment 時,在通道上形成佇列的所有部分郵件都會改為置於重新整理通道佇列中。所有部分均到達之後,郵件就會重建並傳送出去。nodefragment 停用這種特殊處理。關鍵字 nodefragment 為預設。

重新整理通道保留時間

郵件僅在磁碟重新整理通道佇列中保留有限時間。如果第一條未投遞通知被傳送之前時間已過半,則郵件各部分無需重新組合即會繼續傳送。這種時間值的選擇會避免傳送有關磁碟重新整理通道佇列中郵件的未投遞通知。

notices 通道關鍵字控制傳送未投遞通知之前所經過的時間,因此也控制依部分傳送郵件之前保留郵件的時間。請將 notices 關鍵字的值設定為您希望保留郵件以進行可能之重新整理的時間的兩倍。例如,notices 值為 4 時會將郵件片段保留兩天:

defragment notices 4
DEFRAGMENT-DAEMON

大型郵件的自動分段程序

關鍵字:maxblocksmaxlines

有些電子郵件系統或網路傳送程式無法處理超過特定大小限制的郵件。MTA 提供逐個通道地設定此類限制的功能。大於設定限制的郵件將會自動分割 (分段) 成多個較小的郵件。用於此類片分段的內容類型為 message/partial,並且會加入唯一的 ID 參數,使同一郵件的各個部分互相關聯,並可以由接收郵件程式自動重新組合。

maxblocksmaxlines 關鍵字可用於設定大小限制,超過此限制便會啟動自動分段程序。這兩個關鍵字之後都必須有單一整數值。關鍵字 maxblocks 指定郵件中允許的最大區塊數量。一個 MTA 區塊通常為 1024 個位元組;可以透過 MTA 選項檔案中的 BLOCK_SIZE 選項變更此值。關鍵字 maxlines 指定郵件中允許的最大行數。如有必要,可同時設定這兩個限制。

在某種程度上,郵件標頭包含在郵件的大小中。由於郵件標頭無法分割成多封郵件,可是它們本身也可能超過指定的大小限制,因此有一種更複雜的機制用於計算郵件標頭大小。此邏輯由 MTA 選項檔案中的 MAX_HEADER_BLOCK_USEMAX_HEADER_LINE_USE 選項控制。

MAX_HEADER_BLOCK_USE 用於指定 0 到 1 之間的實數。預設值為 0.5。郵件的標頭幾乎可以佔用郵件可耗用的區塊總數 (由 maxblocks 關鍵字指定)。如果郵件標頭超過此大小,MTA 會將 MAX_HEADER_BLOCK_USEmaxblocks 的乘積作為標頭的大小 (標頭大小會使用實際標頭大小和 maxblocks * MAX_HEADER_BLOCK_USE 兩者中較小的值)。

例如,如果 maxblocks 為 10,而 MAX_HEADER_BLOCK_USE 為預設值 0.5,任何大於 5 個區塊的郵件標頭都會被視為 5 區塊標頭,而如果郵件大小等於或小於 5 個區塊,將不會被分段。數值 0 會使標頭在有關郵件大小限制範圍內被實際忽略。

數值 1 允許標頭用完所有可用的大小。每個分段始終至少包含一個郵件行,而不論此郵件行是否超過限制。MAX_HEADER_LINE_USE 以類似的方式和 maxlines 關鍵字一同運作。

設定郵件行長度限制

關鍵字:linelength

SMTP 規格允許文字行最多包含 1000 個位元組。但是,有些傳送程式可以對行長度設定更嚴格的限制。linelength 關鍵字提供一種機制,可逐個通道地限制允許的最大郵件行長度。對於在給定通道上形成佇列的郵件,如果有行長度超過為該通道指定的限制,則該郵件會被自動編碼。

MTA 中可用的各種編碼總會使行長度縮減到 80 個字元以下。執行上述編碼之後,透過套用適當的解碼篩選器,即可回復原始郵件。


注意

編碼只能將行長度縮減到 80 個字元以下。低於 80 的行長度值規格可能無法正確產生長度符合指定限制的行。


linelength 關鍵字可使資料編碼執行「軟」換行,以達到傳輸目的。編碼通常是在接收端執行解碼,以回復原始「長」行。如需瞭解「硬」換行,請參閱「記錄, 文字」CHARSET-CONVERSION。


對郵件、使用者配額、權限和認證嘗試的限制

本節描述用於設定郵件大小限制、使用者配額和權限的關鍵字。包含以下各節:

對不成功的認證嘗試的限制

關鍵字:disconnectbadauthlimit

此關鍵字可用於設定對中斷連線之前階段作業內所允許的未成功認證嘗試次數的限制。此選項的預設值為 3。

指定絕對郵件大小限制

關鍵字:blocklimitnoblocklimitlinelimitnolinelimitsourceblocklimit

雖然分段程序可以自動將郵件斷成較小的部分,但在有些情況下,拒絕超過某種管理上定義之限制的郵件更為合適 (例如,為避免拒絕服務型侵入)。

blocklimitlinelimitsourceblocklimit 關鍵字用於設定絕對大小限制。這些關鍵字之後都必須有單一整數值。

關鍵字 blocklimit 指定郵件中允許的最大區塊數量。MTA 會拒絕將所含區塊超過此限制的郵件在通道上形成佇列的嘗試。一個 MTA 區塊通常為 1024 個位元組;可以透過 MTA 選項檔案中的 BLOCK_SIZE 選項變更此值。

關鍵字 sourceblocklimit 指定內送的郵件中允許的最大區塊數量。MTA 會拒絕將所含區塊超過此限制的郵件提交給通道的嘗試。換言之,blocklimit 適用於目標通道;sourceblocklimit 適用於來源通道。一個 MTA 區塊通常為 1024 個位元組;可以透過 MTA 選項檔案中的 BLOCK_SIZE 選項變更此值。

也可以根據寄件者指定來源區塊限制,方法是:使用 MTA 選項 LDAP_SOURCEBLOCKLIMIT 指定使用者 LDAP 屬性並將該屬性增加至寄件者 LDAP 項目。根據寄件者的網域,來源區塊限制也受支援。使用 MTA 選項 LDAP_DOMAIN_ATTR_SOURCEBLOCKLIMIT 指定網域 LDAP 屬性,並將此屬性增加至寄件者的網域 LDAP 項目。這些值均無預設。

關鍵字 linelimit 指定郵件中允許的最大行數。MTA 會拒絕將所含行數超過此限制的郵件在通道上形成佇列的嘗試。如有必要,可以同時設定 blocklimitlinelimit 關鍵字。

MTA 選項 LINE_LIMITBLOCK_LIMIT 可用於對所有通道設定類似限制。這些限制的優點是適用於所有通道。因此,MTA 伺服器可在獲取郵件收件者資訊之前,讓郵件用戶端得知各項限制。這樣可簡化某些協定中拒絕郵件的程序。

nolinelimitnoblocklimit 通道關鍵字為預設,表示除了透過 LINE_LIMITBLOCK_LIMIT MTA 選項設定的所有全域限制之外,不再設定其他任何限制。

重定大小或收件者超過限制的郵件之目標

關鍵字:alternatechannelalternateblocklimitalternatelinelimitalternaterecipientlimit

MTA 能夠將收件者數量、郵件大小或郵件行數超過指定限制的郵件之目標,重定至替代目標通道。這項功能透過一組通道關鍵字來實現,它們是:alternatechannelalternateblocklimitalternatelinelimitalternaterecipientlimit,這些關鍵字可置於任何目標通道上。alternatechannel 關鍵字使用單一引數,用於指定要使用的替代通道之名稱。其他每個關鍵字都需要一個整數引數,用於指定對應的臨界值。超過任何臨界值的郵件將在替代通道而非原始目標通道上形成佇列。

在以下通道區塊範例中,超過 5000 個區塊的大型郵件會從 tcp_big 通道而非 tcp_local 通道發往網際網路:

tcp_local smtp ... rest of keywords ... alternatechannel tcp_big alternateblocklimit 5
tcp-daemon


tcp_big smtp
...rest of keywords...
tcp-big-daemon

以下是 alternate* 通道關鍵字的使用範例:

處理對超過配額的使用者的郵件遞送

關鍵字:holdexquotanoexquota

noexquotaholdexquota 關鍵字控制對傳送給 Berkeley 電子信箱使用者 (UNIX) (即遞送至 uid 原生通道而且超過其磁碟配額的使用者) 之郵件的處理。

noexquota 告知 MTA 將傳送給超過配額的使用者數目之郵件傳回給郵件寄件者。holdexquota 告知 MTA 扣留傳送給超過配額的使用者數目之郵件;這類郵件會保留在 MTA 佇列中,直到其被遞送或逾時,然後由郵件傳回工作傳回給寄件者。

處理行長度超過 1000 個字元的 SMTP 郵件

關鍵字:rejectsmtplonglineswrapsmtplonglinestruncatesmtplonglines

rejectsmtplonglines 增加拒絕行長度超過 SMTP 所允許的 1000 個字元 (包括 CRLF) 的郵件之選項。此區域中的其他選項為 wrapsmtplonglines (將過長的行換行) 和預設選項 truncatesmtplonglines (將過長的行截斷)。這兩種關鍵字均必須套用至用於提交的初始通道 (例如 tcp_local)。這不會影響隨後切換到的通道。

控制一般和檔案名稱內容類型及內容處理參數的長度

關鍵字:parameterlengthlimitnameparameterlengthlimit

parameterlengthlimit 控制一般內容類型和內容處理參數的截斷點。預設為 1024。nameparameterlengthlimit 控制名稱內容類型和檔案名稱內容處理參數的截斷點。預設為 128。請注意,除非郵件正在執行 MIME 處理,否則僅處理最外層的郵件標頭。可透過多種方式啟用 MIME 處理,包括但不僅限於 inner 關鍵字或使用字元集轉換。

限制郵件收件者

關鍵字:recipientlimitrecipientcutoff

recipientlimit 指定郵件將接受的收件者位址總數。recipientcutoff 將提交給 MTA 的收件者總數與指定的值進行比較。如果超過該限制或該值,則不接受遞送任何郵件。兩個關鍵字都接受單一的整數引數。除非已指定相應的通道關鍵字,否則二者的預設均是無限的。

還可以在寄件者或寄件者的網域上設定收件者限制。其方法是使用適當的 MTA 選項 LDAP_RECIPIENTLIMITLDAP_RECIPIENTCUTOFFLDAP_DOMAIN_ATTR_RECIPIENTLIMITLDAP_DOMAIN_ATTR_RECIPIENTCUTOFF 指定使用者或網域 LDAP 屬性,並將該屬性增加至寄件者的使用者項目或網域項目。

限制標頭大小

關鍵字:headerlimit

強制限制主要 (最外層) 郵件標頭的最大大小。當達到限制時,主要郵件標頭會悄然截斷。如果已設定全域 MTA 選項 HEADER_LIMIT,則其將置換此通道層級限制。預設為無限制。


在 MTA 佇列中建立檔案

本節描述可讓您透過指定在 MTA 佇列中建立檔案來控制磁碟資源的關鍵字。包含以下各節:

控制如何處理郵件上的多個位址

關鍵字:multipleaddrsperfilesinglesingle_sys

MTA 允許每個已形成佇列的郵件中存在多個目標位址。有些通道程式可能只能處理具有一位收件者的郵件、收件者數量有限的郵件或每份郵件副本只有單一目標系統的郵件。例如,SMTP 通道主要程式在給定的異動中只建立一個連至單一遠端主機的連線,因此只會處理傳送至該主機的位址 (雖然如此,單一通道通常用於所有 SMTP 通訊流)。

另一個範例是,有些 SMTP 伺服器可以限制它們可一次處理的收件者數量,而且可能無法處理此類型的錯誤。

關鍵字 multipleaddrsperfilesinglesingle_sys 可用於控制處理多個位址的方式。關鍵字 single 表示將為通道中的每個目標位址建立單獨的郵件副本。關鍵字 single_sys 為使用的每個目標系統建立單份郵件副本。關鍵字 multiple 為預設,會為整個通道建立單份郵件副本。


注意

不論使用的關鍵字為何,都要為郵件形成佇列時所在的每個通道至少建立一份郵件副本。


addrsperfile 關鍵字用於限制可與通道佇列中單一郵件檔案關聯的收件者的最大數量,從而可以限制單一作業中所處理的收件者數量。此關鍵字需要單一整數引數,用於指定郵件檔案允許的收件者位址最大數量;如果達到此數量,MTA 會自動建立額外的郵件檔案來容納它們。(預設 multiple 關鍵字一般相當於不限制郵件檔案中的收件者數量,但是 SMTP 通道預設為 99。)

跨多個子目錄分佈通道郵件佇列

關鍵字:subdirs

依預設,所有在通道上形成佇列的郵件都會以檔案形式儲存在 /imta/queue/channel-name 目錄中,其中 channel-name 是通道名稱。但是,如果等待處理的郵件檔案分佈在大量子目錄上,則處理大量郵件並傾向於為那些郵件檔案建立大型儲存的通道 (例如 TCP/IP 通道),可以發揮比檔案系統更高的效能。subdirs 通道關鍵字可提供此功能:此關鍵字之後必須有一個整數,用於指定為通道分佈郵件的子目錄數量,例如:

tcp_local single_sys smtp subdirs 10

設定階段作業限制

關鍵字:disconnectbadcommandlimit、disconnectrecipientlimit、disconnectrejectlimit 和 disconnecttransactionlimit

這四個新的通道關鍵字可以使 SMTP 伺服器在偵測到某個數量的錯誤之後中斷與用戶端的連線:

disconnectrecipientlimit - 限制階段作業收件者的數目。

disconnectrejectlimit - 限制拒絕的收件者之數目。

disconnecttransactionlimit - 限制作業事件的數目。

disconnectbadcommandlimit - 限制錯誤指令的數目。

這些限制針對所有階段作業。發出 MAIL FROM 或 RSET 指令時,檢查除 disconnectbadcommandlimit 以外的所有這些限制。如果超過其中一項限制,伺服器則發出 4xy 錯誤並斷開連線。錯誤指令限制僅在由發出的錯誤指令進行檢查時不同於其他限制。


配置記錄和除錯

本節描述記錄和除錯關鍵字。

記錄關鍵字

關鍵字:loggingnologginglogheader

MTA 提供記錄每封郵件形成佇列與移出佇列情況的功能。loggingnologging 關鍵字可以針對各通道控制郵件記錄。依預設,初始配置會開啟對所有通道的記錄。您可以在特定通道定義中以 nologging 關鍵字替換,從而停用對相應通道的記錄。

logheader 根據通道置換 LOG_HEADER MTA 選項。其值為 0 (預設) 時,停用郵件標頭記錄。請參閱「Sun Java System Messaging Server Administration Reference」,以取得更多資訊。

如需有關記錄的更多資訊,請參閱第 21 章「管理記錄」

除錯關鍵字

關鍵字:master_debugslave_debugnomaster_debugnoslave_debug

有些通道程式包含可選程式碼,可透過產生額外的診斷輸出來協助除錯。有兩個通道關鍵字可使這種針對各通道的除錯輸出產生。這兩個關鍵字分別是在主要程式中啟用除錯輸出的 master_debug,以及在從屬程式中啟用除錯輸出的 slave_debug。依預設,這兩種除錯輸出類型都被停用,對應的關鍵字為 nomaster_debugnoslave_debug

啟動之後,除錯輸出會在與通道程式關聯的記錄檔中輸出。各程式的記錄檔位置可能有所不同。記錄檔通常位於記錄目錄中。主要程式的記錄檔名稱形式通常為 x_master.log,其中 x 為通道名稱。從屬程式的記錄檔名稱形式通常為 x_slave.log

在 UNIX 中,為 l 通道啟用 master_debugslave_debug 後,使用者會在他們目前包含 MTA 除錯資訊的目錄 (如果他們擁有該目錄的寫入權限;否則,除錯輸出將發至 stdout) 中收到 imta_sendmail.log-uniqueid 檔案。

設定迴圈檢查

關鍵字:loopchecknoloopcheck

loopcheck 關鍵字會將字串置入 SMTP EHLO 回應大標題中,讓 MTA 檢查是否與其自身通訊。設定 loopcheck 後,SMTP 伺服器會公佈 XLOOP 延伸。

當 MTA 的 SMTP 用戶端與支援 XLOOP 的 SMTP 伺服器通訊時,會比對公佈的字串與其 MTA 的值,如果用戶端事實上是與該 SMTP 伺服器通訊,則會立即退回郵件。


其他關鍵字

本節描述其他關鍵字。包含以下各節:

程序通道置換

關鍵字:notificationchanneldispositionchannel

這些關鍵字分別將程序通道置換為最初形成遞送狀態通知 (DSN) 和郵件處理通知 (MDN) 佇列的位置。如果命名的通道不存在,則 Messaging Server 將使用程序通道繼續。

notificationchannel 將程序通道置換為最初形成遞送狀態通知 (DSN) 佇列的位置。如果命名的通道不存在,則 Messaging Server 將使用程序通道繼續。

dispositionchannel 將程序通道置換為最初形成郵件處理通知 (MDN) 佇列的位置。如果命名的通道不存在,則 Messaging Server 將使用程序通道繼續。

通道作業類型

關鍵字:submit

Messaging Server 支援 RFC 2476 的郵件提交協定。submit 關鍵字可用於標記通道為僅供提交的通道。這通常對於 TCP/IP 通道最有用,例如在完全用於提交郵件的特殊連接埠上執行的 SMTP 伺服器;RFC 2476 建立連接埠 587 供此類郵件提交之用。

管道通道

關鍵字:user

user 關鍵字在管道通道上用於指示執行時使用的使用者名稱。

請注意,user 的引數通常必須小寫,但如果該引數加上引號,便可保留原始大小寫形式。

指定電子信箱篩選器檔案位置

關鍵字:filter, nofilter, channelfilter, nochannelfilter, destinationfilter nodestinationfilter, sourcefilter, nosourcefilter, fileinto, nofileinto}

filter 關鍵字可用於原生通道和 ims-ms 通道,以指定通道的使用者篩選器檔案位置。它接受必需的描述篩選器檔案位置的 URL 引數。nofilter 為預設,表示此通道未啟用使用者電子信箱篩選器。

sourcefilterdestinationfilter 關鍵字可用於一般 MTA 通道,指定通道層級的篩選器,以分別套用於內送的郵件和外寄的郵件。這些關鍵字接受必需的描述通道篩選器檔案位置的 URL 引數。nosourcefilternodestinationfilter 為預設,表示通道任一方向均未啟用通道電子信箱篩選器。

淘汰的 channelfilternochannelfilter 關鍵字分別是 destinationfilternodestinationfilter 的同義詞。

fileinto 關鍵字目前只支援 ims-ms 和 LMTP 通道,可指定使用電子信箱篩選器 fileinto 運算子時,如何改變位址。對於 ims-ms 通道,通常的用法是:

fileinto $U+$S@$D

上述用法指定資料夾名稱應作為子位址插入至原始位址中,取代任何原有子位址。

對於 LMTP 通道,通常的用法是:

fileinto @$4O:$U+$S@$D

其中 $4O 是 4 和字母 O (不是數字零)。

垃圾郵件篩選器關鍵字

關鍵字:destinationspamfilterXoptin, sourcespamfilterXoptin

destinationspamfilterXoptin 指定傳送至此通道的所有郵件均透過篩選軟體 X 執行。(篩選軟體 X 由 option.dat 中的 spamfilterX_library 定義。)此關鍵字後接篩選器參數,可用的參數視篩選程式而定。

sourcespamfilterXoptin 指定所有源自此通道的郵件均透過篩選軟體 X 執行。(篩選軟體 X 由 option.dat 中的 spamfilterX_library 定義。)此關鍵字後接系統範圍的預設參數,可用的參數視篩選程式而定。如果 switchchannel 生效,則應將此關鍵字置於切換至的通道上。

如需有關如何使用這些關鍵字的完整詳細資訊,請參閱「指定通道級別的篩選」。

位址驗證之後擴充之前的路由

關鍵字:aliasdetourhost

aliasdetourhost 允許受託管使用者的 mailHost 屬性值進行來源通道特定置換。具體來說,aliasdetourhost 通常用於在目標為本機 (在此系統上進行託管) 使用者的郵件路由中實現「繞道」至單獨的主機,以進行某種處理。郵件 (該位址是合法的本機位址) 可以在原始主機上進行驗證,並繞道至處理主機,然後再傳回原始主機以進行擴充和遞送。

aliasdetourhost 允許更好地配置和使用通道和協力廠商篩選主機的「中間篩選」排序。除使用替代轉換通道之外,通常還使用 aliasdetourhostaliasdetourhost 用於影響本機 (在此系統上進行託管) 使用者的路由,而替代轉換通道用於影響遠端收件者的路由。

aliasdetourhost 的引數為主機或網域名稱,或主機/網域規格。(請注意,重寫規則可處理主機名稱、IP 文字位址和暗示為主機名稱的通道標記。)如果在來源通道上指定關鍵字,將導致儲存在 LDAP 中的位址之別名擴充正好在檢查郵件主機資訊之前 (處理轉換標記資訊之後) 停止。屆時,郵件將傳送至 aliasdetourhost 值,該位址也視為成功處理完,但是在擴充別名之前驗證位址之後。

以下範例說明 aliasdetourhost 可用於避免各種與轉換通道篩選有關的問題:假設系統設置有前端 MTA 和後端郵件儲存。使用者具有設定為 forwardmailbox 的遞送選項。MTA 使用防毒/垃圾郵件系統的替代轉換通道。當郵件抵達此使用者後,MTA 別名擴充並產生兩個收件者:本機收件者和遠端收件者。遠端收件者的副本可直接傳送。而移至轉換通道的本機收件者之副本先進行掃描,然後傳回。然後第二次套用別名擴充,以便為遠端收件者產生另一個副本,而本機收件者的副本會正常遞送。結果:遠端收件者有兩個副本,本機收件者有一個副本。

透過使用 aliasdetourhost 的通道,而不是使用本機託管使用者的替代轉換通道 (但是仍可能使用其他收件者的替代轉換通道),可執行以下作業:

範例 1:

假設協力廠商掃描程式在與 MTA 不同的單獨主機上執行。以下範例允許使用使用者項目轉寄,而無需建立虛假複製件,同時保留在接受郵件之前執行收件者位址驗證的能力。

  1. 建立新的通道 tcp_scanner
  2. 在該通道上放置 daemon 關鍵字,以指向篩選系統。並將 enqueue_removeroute 增加至此通道。tcp_scanner 通道在 imta.cnf 中表現為:

    tcp_scanner smtp mx single_sys subdirs 20 noreverse maxjobs 7 pool
    SMTP_POOL daemon my_a-v_filter.siroe.com enqueue_removeroute
    tcp_scanner-daemon

  3. aliasDetourHost tcp_scanner-daemon 增加至您想要掃描的所有內送來源 tcp 通道 (可能包含 tcp_localtcp_submittcp_intranettcp_auth) 上的 tcp_local。以下是 tcp_localtcp_submit 的範例。
  4. ! tcp_local
    tcp_local smtp mx single_sys remotehost inner switchchannel
    identnonenumeric subdirs 20 maxjobs 7 pool SMTP_POOL maytlsserver
    maysaslserver saslswitchchannel tcp_auth missingrecipientpolicy 0
    aliasdetourhost tcp_scanner-daemon
    tcp-daemon

    ! tcp_submit
    tcp_submit submit smtp mx single_sys mustsaslserver maytlsserver
    missingrecipientpolicy 4 aliasdetourhost tcp_scanner-daemon
    tcp_submit-daemon

    請注意,aliasdetourhost 的引數 (tcp_scanner-daemon) 是新通道 tcp_scanner 的正式主機名稱。

  5. 建立重寫規則,以透過 tcp_scanner 通道從掃描系統收回郵件。
  6. [1.2.3.4] $E$R$U[1.2.3.4]@tcp_scanner-daemon

    其中,1.2.3.4 為掃描程式系統的 IP 位址。

    如果您未建立該重寫規則,郵件將透過一個其他的 tcp* 來源通道進來,並且郵件將再次被掃描,因為所有郵件都具有 aliasdetourhost。將發生迴圈。

  7. 重新編譯您的配置,並重新啟動派送程式。
  8. #imsimta cnbuild
    #imsimta restart dispatcher

範例 2:

假設協力廠商掃描儀在與 MTA 相同的主機上執行,但偵聽不同的連接埠。假設郵件在連接埠 10024 上被接受並轉送回 10025 上。

  1. 建立新的通道 tcp_scanner
  2. ! tcp_scanner
    tcp_scanner smtp nomx single_sys identnonenumeric subdirs 20 maxjobs 7 pool
    SCAN_POOL daemon 127.0.0.1 port 10024 enqueue_removeroute
    tcp_scanner-daemon

  3. aliasDetourHost tcp_scanner-daemon 增加至您想要掃描的所有內送來源 tcp 通道 (可能包含 tcp_localtcp_submittcp_intranet 等等) 上的 tcp_local。以下是 tcp_localtcp_submit 的範例。
  4. ! tcp_local
    tcp_local smtp mx single_sys remotehost inner switchchannel
    identnonenumeric subdirs 20 maxjobs 7 pool SMTP_POOL maytlsserver
    maysaslserver saslswitchchannel tcp_auth missingrecipientpolicy 0
    aliasdetourhost tcp_scanner-daemon
    tcp-daemon

    ! tcp_submit
    tcp_submit submit smtp mx single_sys mustsaslserver maytlsserver
    missingrecipientpolicy 4 aliasdetourhost tcp_scanner-daemon
    tcp_submit-daemon

  5. 增加至對映檔案,以透過 tcp_scanner 通道重新路由外寄郵件。
  6. CONVERSIONS

    in-chan=tcp_scanner;out-chan=*;CONVERT            No
    in-chan=tcp_*;out-chan=tcp_local;CONVERT     Yes,Channel=tcp_scanner

  7. job_controller.cnfSMTP_POOL 之下,增加對同步運作的掃描的數量限制。
  8. 儘管也應限制掃描軟體,但是保持設定相同是好的。這樣,當掃描儀不接受郵件時,郵件傳送伺服器就不會嘗試向該掃描儀傳送郵件了。

    !
    [POOL=SCAN_POOL]
    job_limit=2
    !

  9. 將新的服務增加至 dispatcher.cnf,以接受從特殊連接埠上的掃描儀傳回的郵件,並從 tcp_scan 中獲得該郵件,以便不再掃描該郵件。
  10. !
    [SERVICE=SMTP_SCANNING]
    INTERFACE_ADDRESS=127.0.0.1
    PORT=10025
    IMAGE=IMTA_BIN:tcp_smtp_server
    LOGFILE=IMTA_LOG:tcp_smtp_server.log
    STACKSIZE=2048000
    PARAMETER=CHANNEL=tcp_scanner
    !

  11. 重新編譯您的配置,並重新啟動派送程式。
  12. # imsimta cnbuild
    # imsimta restart job_controller
    # imsimta restart dispatcher

NO-SOLICIT SMTP 延伸支援

關鍵字:sourcenosolicitdestinationnosolicit

網際網路草案 draft-malamud-no-soliciting-07.txt 中描述的 NO-SOLICIT SMTP 延伸已經作為建議的標準在 Messaging Server 中實作了。以下通道關鍵字可以用於控制此功能:

sourcenosolicit 指定推銷信的欄位值清單值 (用逗號分隔),由這些通道寄出的郵件將被封鎖。這個值的清單將顯示在 NO-SOLICIT EHLO 回應中。全域樣式的萬用字元可以用於這些值,但是,含有萬用字元的值不會顯示在 EHLO 通知中。

destinationnosolicit 指定推銷信的欄位值清單值 (用逗號分隔),形成佇列等候寄至這些通道的郵件將被拒絕。

設定對錯誤 RCPT TO:位址的限制

關鍵字:deferralrejectlimit

設定對單一階段作業期間允許的錯誤 RCPT TO:位址數量的限制。在 To:位址的指定數量被拒絕後,隨後的所有收件者 (正確的或錯誤的) 都會因為 4xx 錯誤而被拒絕。提供與 ALLOW_REJECTIONS_BEFORE_DEFERRAL SMTP 通道關鍵字相同的功能,但是針對每個通道的。



上一個      目錄      索引      下一個     


Copyright 2005 Sun Microsystems, Inc. 版權所有。