上一页    目录    索引    下一页
iPlanet Messaging Server 5.2 管理员指南

第 8 篇 配置通道定义


本章说明如何使用 MTA 配置文件 imta.cnf 中的通道关键字定义。在阅读本章前,请先阅读第 6 篇 “关于 MTA 服务与配置”以及“通道定义”“MTA 配置文件”。本章包括以下各节:



备注: 在修改了 imta.cnf 文件中的通道定义后,您必须重新启动任何如 SMTP 服务器这样的程序或通道:它们只在用命令 imsimta start 启动时一次性地加载配置数据。如果使用的是已编译的配置,则必须重新编译然后再重新启动。有关编译配置信息和启动程序方面的详细信息,请参阅 iPlanet Messaging Server Reference Manual




按字母顺序列示的通道关键字



下表为字母化的关键字列表。


表 8-1 字母化的通道关键字


关键字

关键字

关键字

关键字

733

1

822

1

addreturnpath

1

addrsperfile

1

aliaslocal

1

aliaspostmaster

1

allowetrn

1

allowswitchchannel

1

authrewrite

1

backoff

1

bangoverpercent

1

bangstyle

1

bidirectional

1

blocketrn

1

blocklimit

1

cacheeverything

1

cachefailures

1

cachesuccesses

1

channelfilter

1

charset7

1

charset8

1

charsetesc

1

checkehlo

1

commentinc

1

commentmap

1

commentomit

1

commentstrip

1

commenttotal

1

connectalias

1

connectcanonical

1

copysendpost

1

copywarnpost

1

daemon

1

datefour

1

datetwo

1

dayofweek

1

defaulthost

1

defaultmx

1

defaultnameservers

1

deferred

1

defragment

1

dequeue_removeroute

1

destinationfilter

1

disableetrn

1

domainetrn

1

domainvrfy

1

dropblank

1

ehlo

1

eightbit

1

eightnegotiate

1

eightstrict

1

errsendpost

1

errwarnpost

1

expandchannel

1

expandlimit

1

exproute

1

fileinto

1

filesperjob

1

filter

1

forwardcheckdelete

1

forwardchecknone

1

forwardchecktag

1

header_733

1

header_822

1

header_uucp

1

headerlabelalign

1

headerlinelength

1

headerread

1

headertrim

1

holdexquota

1

holdlimit

1

identnone

1

identnonelimited

1

identnonenumeric

1

identnonesymbolic

1

identtcp

1

identtcplimited

1

identtcpsymbolic

1

ignoreencoding

1

immnonurgent

improute

1

includefinal

1

indenttcpnumeric

1

inner

1

innertrim

1

interfaceaddress

1

interpretencoding

1

language

1

lastresort

1

linelength

1

linelimit

1

localvrfy

1

logging

1

loopcheck

1

mailfromdnsverify

1

master

1

master_debug

1

maxblocks

1

maxheaderaddrs

1

maxheaderchars

1

maxjobs

1

maxlines

1

maxprocchars

1

maysaslserver

1

maytls

1

maytlsclient

1

maytlsserver

1

missingrecipientpolicy

1

msexchange

1

multiple

1

mustsaslserver

1

musttls

1

musttlsclient

1

musttlsserver

1

mx

1

nameservers

1

noaddreturnpath

1

nobangoverpercent

1

noblocklimit

1

nocache

1

nochannelfilter

1

nodayofweek

1

nodefaulthost

1

nodeferred

1

nodefragment

1

nodestinationfilter

1

nodropblank

1

noehlo

1

noexproute

1

noexquota

1

nofileinto

1

nofilter

1

noheaderread

1

noheadertrim

1

noimproute

1

noinner

1

noinnertrim

1

nolinelimit

1

nologging

1

noloopcheck

1

nomailfromdnsverify

1

nomaster_debug

1

nomsexchange

1

nomx

1

nonrandomemx

1

nonurgentbackoff

1

nonurgentblocklimit

1

nonurgentnotices

1

noreceivedfor

1

noreceivedfrom

1

noremotehost

1

norestricted

1

noreturnaddress

1

noreturnpersonal

1

noreverse

1

normalbackoff

1

normalblocklimit

1

normalnotices

1

norules

1

nosasl

1

nosaslserver

1

nosaslswitchchannel

1

nosendetrn

1

nosendpost

1

noservice

1

noslave_debug

1

nosmtp

1

nosourcefilter

1

noswitchchannel

1

notices

1

notls

1

notlsclient

1

notlsserver

1

novrfy

1

nowarnpost

1

nox_env_to

1

percentonly

1

percents

1

personalinc

1

personalmap

1

personalomit

1

personalstrip

1

pool

1

port

1

postheadbody

1

postheadonly

1

randommx

1

receivedfor

1

receivedfrom

1

remotehost

1

restricted

1

returnaddress

1

returnenvelope

1

returnpersonal

1

reverse

1

routelocal

1

rules

1

rules

1

saslswitchchannel

1

sendetrn

1

sendpost

1

sensitivitycompanyconfidential

1

sensitivitynormal

1

sensitivitypersonal

1

sensitivityprivate

1

service

1

sevenbit

1

silentetrn

1

single

1

single_sys

1

slave

1

slave_debug

1

smtp

1

smtp_cr

1

smtp_crlf

1

smtp_crorlf

1

smtp_lf

1

sourceblocklimit

1

sourcecommentinc

1

sourcecommentmap

1

sourcecommentomit

1

sourcecommentstrip

1

sourcecommenttotal

1

sourcefilter

1

sourcepersonalinc

1

sourcepersonalmap

1

sourcepersonalomit

1

sourcepersonalstrip

1

sourceroute

1

streaming

1

subaddressexact

1

subaddressrelaxed

1

subaddresswild

1

subdirs

1

submit

1

suppressfinal

1

switchchannel

1

threaddepth

1

tlsswitchchannel

1

unrestricted

1

urgentbackoff

1

urgentblocklimit

1

urgentnotices

1

useintermediate

1

user

1

uucp

1

viaaliasoptional

1

viaaliasrequired

1

vrfyallow

1

vrfydefault

1

vrfyhide

1

warnpost

1

x_env_to

1


按功能分类的通道关键字



下表为关键字的分类列表。


表 8-2 按功能分类的通道关键字(默认字体为粗体)


关键字

定义

地址处理

733

1

在信封中使用 % 路由;与 percents 同义。

822

1

在信封中使用源路由;与 sourceroute 同义。

addreturnpath

1

在该通道排队的邮件上添加 Return-path: 报头。

aliaslocal

1

在别名文件和别名数据库中查找重写的地址。

authrewrite

1

用于在源通道上使 MTA 将认证的始发者信息(如果有的话)传送到报头中。

bangoverpercent

1

把 A!B%C 分组为 A!(B%C)

bangstyle

1

在信封中使用 UUCP ! 路由;与 uucp 同义。

defaulthost

1

指定一个域名以用于完成地址填写

dequeue_removeroute

1

从信封的 To: 地址中移除源路由。

exproute

1

当地址传送至远程系统时需具有显式路由。

holdlimit

1

当信封收件人地址数量超过此限量时暂不发送邮件。

improute

1

该通道地址的隐式路由

missingrecipientpolicy

1

设置策略,确定如何使缺少任何收件人报头的邮件合法化(即添加什么样的报头)。

noaddreturnpath

1

排列邮件时,不添加 Return-path: 报头。

nobangoverpercent

1

把 A!B%C 分组为 (A!B)%C

nodefaulthost

1

不指定完成地址填写需使用的域名

noexproute

1

该通道地址无显式路由

noimproute

该通道地址无隐式路由

noreceivedfrom

1

构建 Received: 报头行,但不包括原信封的 From: 地址。

noremotehost

1

使用本地主机的域名作为默认域名,以此完成地址填写

norestricted

1

unsrestricted 同义。

noreverse

1

免除对邮件地址进行地址逆向处理

norules

1

不在该通道上强制进行针对具体通道的重写规则检查。

percentonly

1

忽略惊叹号路径。在信封中使用 % 路由。

percents

1

在信封中使用 % 路由;与 733 同义。

remotehost

1

使用远程主机名作为默认域名,以此完成地址填写

restricted

1

通道连接到需要编码的邮件系统。

reverse

1

按照地址反向数据库或反向映射检查的地址

routelocal

1

可使 MTA 在通道上重写地址时以“短路”方式中断地址中的任何显式路由。

rules

1

在该通道上强制进行针对具体通道的重写规则检查。

sourceroute

1

822 同义。

subaddressexact

1

在匹配条目期间不进行特殊的子地址处理;整个邮箱(包括子地址)必须与一条目匹配,以使别名被视为与之匹配。

subaddressrelaxed

1

在寻找精确匹配以及与之匹配的格式名称 +* 后,MTA 应只在名称部分的匹配情况再次检查。

subaddresswild

1

在寻找包括整个子地址在内的精确匹配项,MTA 下一步应寻找格式名称 +* 的条目。

unrestricted

1

指示 MTA 不进行 RFC 1137 编码和解码。

uucp

1

在信封中使用 UUCP! 路由;与 bangstyle(惊叹号样式)同义。

viaaliasoptional

1

不要求与通道匹配的最终收件人地址一定要由一别名生成。

viaaliasrequired

1

与通道匹配的最终收件人地址必须由一别名生成。

附件与 MIME 处理

defragment

1

而将排列在通道中的部分邮件放置在整理碎片通道队列。

ignoreencoding

1

忽略入站邮件上的 Encoding: 报头。

interpretencoding

1

如果需要,则翻译入站邮件上的 Encoding: 报头。

nodefragment

1

可关闭整理碎片功能。

字符集和八位数据

charset7

1

与 7 位文本邮件相关的默认字符集

charset8

1

与 8 位文本邮件相关的默认字符集

charsetesc

1

与 7 位文本邮件相关的默认字符集,包括换码字符

eightbit

1

通道支持八位字符。

eightnegotiate

1

通道应尽可能协调八位传输的使用。

eightstrict

1

拒绝包括未经协调的八位数据的邮件。

sevenbit

1

不支持八位字符;八位字符必须编码。

在 MTA 队列区域创建文件

addrsperfile

1

可与通道队列中的单一邮件文件相关的收件人最大数量限制

expandchannel

1

指定用于执行由于使用 expandlimit 而导致的延迟扩展的通道。

expandlimit

1

当地址数量超过此限制时,对入站邮件进行“脱机”处理。

multiple

1

不限制邮件文件收件人的数量,但 SMTP 通道将使用默认值 99。

single

1

将为通道上的每个目标地址创建分开的邮件副本。

single_sys

1

为所用的每个目标系统创建邮件的一个单独副本。

subdirs

1

用于指定子目录的数量,以在其上传送通道队列的邮件。

报头

authrewrite

1

用于在源通道上使 MTA 将认证的始发者信息(如果有的话)传送到报头中。

commentinc

1

不在邮件标题行中对注释做任何改动。

commentmap

1

通过 COMMENT_STRINGS 映射表运行邮件标题行中的注释串。

commentomit

1

删除邮件标题行中的注释。

commentstrip

1

从邮件标题行的注释字段中删除有问题的字符。

commenttotal

1

移除所有标题行中的注释(括号中的资料),Received: 标题行除外。建议不要使用。

datefour

1

将所有年份字段扩展至四位数。

datetwo

1

移除四位数日期的前两位数。可为需要两位数日期的邮件系统提供兼容性;但决不应用于任何其它目的。

dayofweek

1

保留星期信息并将该信息添加到日期和时间报头(如果缺失的话)。

defaulthost

1

指定一个域名以用于完成地址填写

dropblank

1

移除入站邮件中的非法空报头。

header_733

1

在邮件头中使用 % 路由。

header_822

1

在邮件头中使用源路由。

headerlabelalign

1

用于控制在该通道上排列的邮件头的成行点;需使用一整数值的变量。

headerlinelength

1

用于控制在该通道上排列的邮件头的长度。

headerread

1

在处理原邮件头之前,将一个选项文件中的报头休整规则(于排列邮件之时)应用于邮件头(使用时需格外小心)。

headertrim

1

在处理原邮件头之后,将一个选项文件中的报头休整规则应用于邮件头。

header_uucp

1

在报头中使用 ! 路由

inner

1

分析邮件并重写内部报头。

innertrim

1

将一个选项文件中的报头休整规则应用于内部邮件头(使用时需小心)。

language

1

用于指定报头的默认语言。

maxheaderaddrs

1

用于控制一行上可以显示多少个地址。

maxheaderchars

1

用于控制一行上可以显示多少个字符。

missingrecipientpolicy

1

设置策略,确定如何使缺少任何收件人报头的邮件合法化(即添加什么样的报头)。

nodayofweek

1

用于从日期和时间报头中删除星期。可为不能处理此种信息的邮件系统提供兼容性;但决不应用于任何其它目的。

nodefaulthost

1

不指定完成地址填写需使用的域名

nodropblank

1

不移除入站邮件中的非法空报头。

noheaderread

1

不应用选项文件的报头休整规则。

noheadertrim

1

不应用选项文件的报头休整规则。

noinner

1

不重写内部邮件标题行。

noinnertrim

1

不在内部邮件头中应用报头休整功能。

noreceivedfor

1

构建 Received: 报头行,但不包括任何信封收件人信息。

noreceivedfrom

1

构建 Received: 报头行,但不包括原信封的 From: 地址。

noremotehost

1

使用本地主机的域名作为默认域名,以此完成地址填写

noreverse

1

免除对通道中排列的邮件地址进行地址逆向处理

norules

1

不在该通道上强制进行针对具体通道的重写规则检查。

nox_env_to

1

删除 X-Envelope-to 标题行。

personalinc

1

不在邮件标题行中对人名字段做任何改动。

personalmap

1

通过 PERSONAL_NAMES 映射表运行人名。

personalomit

1

从邮件标题行移除人名字段。

personalstrip

1

移除标题行人名字段中有问题的字符。

receivedfor

1

如果某邮件只定址给一个信封收件人,则用来将该信封的 To: 地址包括在建构的 Received: 标题行中。

receivedfrom

1

如果 MTA 已更改了信封的 From: 地址,则在建构入站邮件的 Received: 标题行时包括原信封的 From: 地址。

remotehost

1

使用远程主机名作为默认域名,以此完成地址填写

restricted

1

通道连接到需要此编码的邮件系统。

reverse

1

按照地址反向数据库或反向映射检查地址

rules

1

在该通道上强制进行针对具体通道的重写规则检查。

sensitivitycompanyconfidential

1

Companyconfidential 是所接受邮件的阅读权限上限(亦称敏感度)。

sensitivitynormal

1

Normal 是所接受邮件的阅读权限上限。

sensitivitypersonal

1

Personal 是所接受邮件的阅读权限上限。

sensitivityprivate

1

Private 是所接受邮件的阅读权限上限。

sourcecommentinc

1

保留入站邮件标题行中的注释。

sourcecommentmap

1

通过源通道运行标题行中的注释字串。

sourcecommentomit

1

从入站邮件的标题行中移除注释,例如,To:From:Cc: 报头。

sourcecommentstrip

1

从入站邮件标题行的注释字段中删除有问题的字符。

sourcecommenttotal

1

移除入站邮件中的注释(括号中的资料)。

sourcepersonalinc

1

不在入站邮件标题行中对人名做任何改动。

sourcepersonalmap

1

通过源通道运行人名。

sourcepersonalomit

1

从入站邮件标题行中移除人名字段。

sourcepersonalstrip

1

移除入站邮件标题行人名字段中有问题的字符。

unrestricted

1

指示 MTA 不进行 RFC 1137 编码和解码。

x_env_to

1

启用 X-Envelope-to 标题行生成功能。

入站通道的匹配与切换

allowswitchchannel

1

允许从 switchchannel 通道切换到此通道

nosaslswitchchannel

1

SASL 认证成功时不切换到此通道

noswitchchannel

1

不应在该通道上做收发切换。

switchchannel

1

从服务器通道切换到与原主机相关的通道。

saslswitchchannel

1

在客户程序成功使用 SASL 的情况下,使入站连接切换到指定的通道。

tlsswitchchannel

1

TLS 协调成功时切换到另一通道。

日志记录与调试

logging

1

在日志记录文件中记录邮件入队和出队信息并启用某通道的日志记录功能。

loopcheck

1

将字串放置在 SMTP EHLO 应答标志区,以便 MTA 检查其自身是否在与之通信。

master_debug

1

在通道的主程序输出中创建调试输出。

nologging

1

不在日志记录文件中记录邮件的入队和出队信息。

noloopcheck

1

不在 SMTP EHLO 应答标志区内放置字串。

nomaster_debug

1

不在通道的主程序输出中创建调试输出。

noslave_debug

1

不生成从属调试输出。

slave_debug

1

生成从属调试输出。

长地址列表或报头

expandchannel

1

指定用于执行由于使用 expandlimit 而导致的延迟扩展的通道。

expandlimit

1

当地址数量超过此限制时,以“脱机”方式处理入站邮件。

holdlimit

1

当地址数量超过此限制时,暂不处理邮件。

maxprocchars

1

可处理和重写的报头之最大长度。

邮箱过滤器

channelfilter

1

通道过滤器文件的位置;同 destinationfilter

destinationfilter

1

应用于出站邮件的通道过滤器文件的位置。

fileinto

1

当应用邮箱过滤器的 fileinto 操作时,用于指定对地址的作用。

filter

1

用于指定用户过滤器文件的位置。

nochannelfilter

1

不在出站邮件上进行通道过滤。亦称 nodestinationfilter

nodestinationfilter

1

不在出站邮件上进行通道过滤。

nofileinto

1

邮箱过滤器的 fileinto 运算符不起作用。

nofilter

1

不进行用户邮箱过滤。

nosourcefilter

1

不在入站邮件上进行通道过滤。

sourcefilter

1

用于指定入站邮件的通道过滤器文件的位置。

通知与 Postmaster 邮件(全面的通知操作程序,请见 1 页)

aliaspostmaster

1

将在正式通道名上定址到用户名 postmaster 的邮件重定向到 postmaster@local-host,其中的 local-host 是本地主机名(即本地通道名)。

copysendpost

1

向 Postmaster 发送失败通知副本,除非出问题的邮件原发者的地址是空的。

copywarnpost

1

向 Postmaster 发送警告讯息副本,除非无法传递邮件的发件人地址是空的。

errsendpost

1

仅当不能向发件人返回通知时才向 Postmaster 发送失败通知副本。

errwarnpost

1

当不能向发件人返回通知时才向 Postmaster 发送警告讯息副本。

includefinal

1

在传递通知中包括收件人地址的最终格式。

nonurgentnotices

1

对于具有非紧急优先级的邮件,指定在发送通知和退回邮件之前可以耗费的时间量。

noreturnaddress

1

RETURN_ADDRESS 选项值作为 postmaster 的地址名。

noreturnpersonal

1

RETURN_PERSONAL 选项值作为 postmaster 的人名。

normalnotices

1

对于具有普通优先级的邮件,指定在发送通知和退回邮件之前可以耗费的时间量。

nosendpost

1

禁止向 Postmaster 发送所有失败邮件副本。

notices

1

指定在发送通知和退回邮件之前可以耗费的时间量。

nowarnpost

1

禁止向 Postmaster 发送警告讯息副本。

postheadbody

1

既返回邮件头也返回邮件内容。

postheadonly

1

仅向 Postmaster 返回邮件头。

returnaddress

1

用于指定本地 postmaster 的返回地址。

returnenvelope

1

控制使用空白的信封返回地址。

returnpersonal

1

设置本地 postmaster 的人名。

sendpost

1

允许向 Postmaster 发送所有失败邮件的副本。

suppressfinal

1

如果有原地址格式,则在通知邮件中抑制使用最终的地址格式。

urgentnotices

1

对于具有紧急优先级的邮件,指定在发送通知和退回邮件之前可以耗费的时间量。

useintermediate

1

使用在列表扩展之后产生的(但在生成用户邮箱名之前形成的)中间格式地址。

warnpost

1

允许向 Postmaster 发送警告讯息副本。

处理提交的控制和作业项(细分的功能单位,请见表 8-7

backoff

1

传递不成功之邮件的重新传递频率。可用以下关键字替换:normalbackoffnonurgentbackoffurgentbackoff

bidirectional

1

由主程序和从属程序为之提供服务的通道。

deferred

1

承认并执行 Deferred-delivery: 标题行。

expandchannel

1

指定用于执行由于使用 expandlimit 而导致的延迟扩展的通道。

expandlimit

1

当地址数量超过此限制时,对入站邮件进行“脱机”处理。

filesperjob

1

单次作业所能处理的队列条目的数量。

immnonurgent

在提交紧急、普通和非紧急邮件后立即启动传递。

master

1

由主程序(master)为之提供服务的通道。

maxjobs

1

通道中能够同时运行的最大任务数量。

nodeferred

1

指定 Deferred-delivery: 标题行不予以执行。

nonurgentbackoff

1

尝试传递非紧急邮件的频率。

nonurgentblocklimit

1

将大小大于此值的邮件的优先级强制定义为低于非紧急优先级(第二等优先级),这意味着此邮件将一直等待下一个任务周期,以得到更进一步的处理。

normalbackoff

1

尝试重新传递正常邮件的频率。

normalblocklimit

1

将大小大于此值的邮件强制定义为非紧急优先级。

noservice

1

对进入此通道的邮件所进行的服务转换必须 CHARSET-CONVERSION 启用。

pool

1

用于为某通道指定一个池。后面必须跟有池的名称,当前通道中的传递任务都应合并到这个池中。

service

1

不论 CHARSET-CONVERSION 条目为何,都无条件地启用服务转换功能。

slave

1

由主程序(slave)为之提供服务的通道。

threaddepth

1

使用多线程 SMTP 客户机触发新线程的邮件数量。

urgentbackoff

1

尝试重新传递紧急邮件的频率。

urgentblocklimit

1

将大小大于此值的邮件强制定义为普通优先级。

user

1

在传递通道上使用,以此指示在哪个用户名下运行。

阅读权限

sensitivitycompanyconfidential

1

接受之邮件的阅读权限上限。

sensitivitynormal

1

Normal 是所接受邮件的阅读权限上限。

sensitivitypersonal

1

Personal 是所接受邮件的阅读权限上限。

sensitivityprivate

1

Private 是所接受邮件的阅读权限上限。

邮件大小限制、用户定额和特权

blocklimit

1

每封邮件允许的最大 MTA 信息块数量。

holdexquota

1

暂不传递超定额用户的邮件。

holdlimit

1

当地址数量超过此限制时,暂不传递入站邮件。

linelength

1

以通道为基础限制邮件行长度的最大允许值。

linelimit

1

每封邮件允许的最多行数量。

maxblocks

1

用于指定邮件中允许的最大信息块数量。

maxlines

1

用于指定邮件中允许的最多行数量。

noblocklimit

1

不限制每封邮件允许的 MTA 信息块数量。

noexquota

1

对于超定额的用户,发送给其的任何邮件都将返回至发件人。

nolinelimit

1

不限制每封邮件允许的行数量。

nonurgentblocklimit

1

将大小大于此值的邮件的优先级强制定义为低于非紧急优先级(第二等优先级),这意味着此邮件将一直等待下一个任务周期,以得到更进一步的处理。

normalblocklimit

1

将大小大于此值的邮件强制定义为非紧急优先级。

sourceblocklimit

1

每封入站邮件允许的最大 MTA 信息块数量。

urgentblocklimit

1

将大小大于此值的邮件强制定义为普通优先级。

SMTP 认证、SASL 和 TLS(细分的功能单位,请见 1

authrewrite

1

用于在源通道上使 MTA 将认证的始发者信息(如果有的话)传送到报头中。

maysaslserver

1

允许客户程序尝试使用 SASL 认证。

maytls

1

使 MTA 给外来连接提供 TLS 并在外发连接上尝试 TLS。

maytlsclient

1

如果发送到某支持 TLS 的 SMTP 服务器,MTA SMTP 客户程序将在发送出站邮件时尝试使用 TLS。

maytlsserver

1

MTA SMTP 服务器将通告其对 STARTTLS 扩展程序的支持,并于接收邮件之时允许使用 TLS。

msexchange

1

用于在 TCP/IP 通道上通知 MTA 这是一个可与 Microsoft Exchange 网关和客户机通信的通道。

mustsaslserver

1

除非远程客户机能成功地认证,否则 SMTP 服务器将不接受邮件。

musttls

1

强制在出站和入站连接中使用 TLS。

musttlsclient

1

MTA SMTP 客户机将在发送出站邮件时强制使用 TLS(MTA 将发出 STARTTLS 命令,而且该命令必须成功执行)。

musttlsserver

1

MTA SMTP 服务器将通告其对 STARTTLS 扩展程序的支持,并于接收入站邮件之时强制使用 TLS。

nomsexchange

1

默认值。

nosasl

1

不允许或不尝试 SASL 认证。

nosaslserver

1

不允许 SASL 认证。

notls

1

不允许或不尝试 TLS 认证。

notlsclient

1

MTA SMTP 客户机将不在出站连接上尝试使用 TLS(系统将在出站连接期间不执行 STARTTLS 命令)。

notlsserver

1

MTA SMTP 服务器将不允许在入站连接上使用 TLS(SMTP 服务器将不通告有 STARTTLS 扩展程序,同时也不接受这一命令)。

saslswitchchannel

1

在客户机成功使用 SASL 的情况下,使外来连接切换到指定的通道。

tlsswitchchannel

1

在客户机成功使用 TLS 的情况下,使外来连接切换到指定的通道。这需要一个值,用以说明切换到哪个通道。

SMTP 命令和协议(细分的功能单位,请见表 8-4

allowetrn

1

执行 ETRN 命令。

blocketrn

1

不执行 ETRN 命令。

checkehlo

1

检查 SMTP 响应标志区以决定是使用 EHLO 还是 HELO。

disableetrn

1

关闭对 ETRN SMTP 命令的支持功能。

domainetrn

1

仅执行有指定域的 ETRN 命令。

domainvrfy

1

用完整地址发布 VRFY 命令。

ehlo

1

在初始连接上使用 SMTP EHLO 命令。

eightbit

1

通道支持八位字符。

eightnegotiate

1

通道应尽可能协调八位传输的使用。

eightstrict

1

拒绝包括未经协调的八位数据的邮件。

localvrfy

1

用本地地址发布 VRFY 命令。

mailfromdnsverify

1

检验用于 MAIL FROM: 命令的域在 DNS 中是否存在。

noehlo

1

不使用 EHLO 命令。

nomailfromdnsverify

1

对用于 MAIL FROM: 命令的域在 DNS 中是否存在不进行检验。

nosendetrn

1

不发送 ETRN 命令。

nosmtp

1

不支持 SMTP 协议。这是默认值。

novrfy

1

不发布 VRFY 命令。

sendetrn

1

发送 ETRN 命令。

sevenbit

1

不支持八位字符;八位字符必须编码。

silentetrn

1

执行 ETRN 命令,但不回送通道信息。

smtp

1

支持 SMTP 协议。关键字 smtp 对所有 SMTP 通道都是必须的。(此关键字等同于 smtp_crorlf。)

smtp_cr

1

接受以回车(CR)结束,后面不跟换行符(LF)的行。

smtp_crlf

1

接受的行必须以回车(CR)换行(LF)序列结束。

smtp_crorlf

1

所接受的行可以以回车(CR)、换行(LF)或一个完整的 CRLF 序列结束。

smtp_lf

1

接受以换行(LF)结束,前面没有 CR 的行。

streaming

1

用于控制在与一通道相关的协议中使用的协议流等级。

vrfyallow

1

提供对 VRFY 命令的信息响应。

vrfydefault

1

依据通道的 HIDE_VERIFY 选项的设置,提供对 VRFY 命令的默认响应。

vrfyhide

1

提供对 SMTP VRFY 命令的模糊响应。

TCP/IP 连接与 DNS 查找支持功能(细分的功能单位,请见表 8-5

cacheeverything

1

高速缓存所有连接信息。

cachefailures

1

仅高速缓存连接失败信息。

cachesuccesses

1

仅高速缓存连接成功信息。

connectalias

1

传递给收件人地址中列出的任何主机。

connectcanonical

1

连接到系统的主机别名,即 MTA 将与之连接者。

daemon

1

无论信封地址是什么都连接到一个特定的主机系统。

defaultmx

1

通道决定是否从网络进行 MX 查找。

defaultnameservers

1

参考 TCP/IP 栈的名字服务器选择。

forwardcheckdelete

1

如果已执行反向的 DNS 查找,下一步将在返回的名字上执行正向查找以检查返回的 IP 号是否与原始的相匹配,如果不匹配,则删除这个名字并使用 IP 地址。

forwardchecknone

1

在 DNS 反向查找后不执行正向查找。

forwardchecktag

1

如果反向的 DNS 查找已被执行,下一步在返回的名字上执行正向查找以检查返回的 IP 号是否与原始的匹配,如果不匹配,将名字标记上 *。

identnone

1

不执行 IDENT 查找;执行 IP 到主机名的转换;在 Received: 邮件头中同时包含主机名和 IP 地址。

identnonelimited

1

不执行 IDENT 查找;执行 IP 到主机名的转换,但在通道切换过程中不使用主机名;在 Received: 邮件头中同时包含主机名和 IP 地址。

identnonenumeric

1

不执行 IDENT 查找或 IP 地址到主机名的转换。

identnonesymbolic

1

不执行 IDENT 查找,执行 IP 到主机名的转换,在 Received: 邮件头中仅包含主机名。

identtcp

1

执行在外来 SMTP 连接上的 IDENT 查找和 IP 地址到主机名的转换,在 Received: 邮件头中同时包含主机名和 IP 地址。

identtcplimited

1

执行在外来 SMTP 连接上的 IDENT 查找和 IP 地址到主机名的转换,但在通道切换过程中不使用主机名。在 Received: 邮件头中同时包含主机名和 IP 地址。

indenttcpnumeric

1

在外来 SMTP 连接上执行 IDENT 查找,但不执行 IP 地址到主机名的转换。

identtcpsymbolic

1

执行在外来 SMTP 连接上的 IDENT 查找和 IP 地址到主机名的转换,在 Received: 邮件头中仅包含主机名。

interfaceaddress

1

绑定到指定的 TCP/IP 接口地址。

lastresort

1

指定最后使用的主机

mailfromdnsverify

1

检验用于 MAIL FROM: 命令的域在 DNS 中是否存在。

mx

1

TCP/IP 网络和软件支持 MX 记录查找。

nameservers

1

指定需参考的名字服务器列表而不参考 TCP/IP 栈自身对名字服务器的选择;nameservers 要求一个用空格隔开的名字服务器的 IP 地址的列表。

nocache

1

不高速缓存任何连接信息。

nomailfromdnsverify

1

对用于 MAIL FROM: 命令的域在 DNS 中是否存在不进行检验。

nomx

1

TCP/IP 网络不支持 MX 查找。

nonrandomemx

1

进行 MX 查找,不以相等的优先级随机排列返回项。

port

1

指定 SMTP 连接的默认端口号。标准端口是 25。

randommx

1

进行 MX 查找,以相等的优先级随机排列返回项。

single

1

指定应在通道上为每个目标地址创建邮件的一个独立副本。

single_sys

1

为每个使用的目标系统创建邮件的一个单独副本。

threaddepth

1

使用多线程 SMTP 客户触发新线程的邮件数量。

其它

submit

1

用于把某通道标记为“仅限提交”通道。

user

1

在传递通道上使用,以此指示在哪个用户名下运行。


配置通道的默认值



所有或几乎所有的通道的许多配置都重复使用各种通道关键字。维护这样的配置既繁杂也容易出错。为简化某些配置,可以指定那些关键字默认用于各种通道。

例如,下面这一配置文件中的文本行表明,其后的所有通道块将继承该行中指定的关键字:

defaults keyword1 keyword2 keyword3 ...

defaults 行可被理解为一个特殊的通道块,它可改变关键字默认值而无需实际地指定一个通道。此 defaults 行也不需要任何其他的通道块信息行(如果指定了,将忽略不计)。

对可以指定 defaults 的行,一般没有数量上的限制,多个默认行的效果是累积性的,最近遇到(从上至下读)的行优先。

可能需要在配置文件的某个点之后(例如,一外部文件的通道块独立部分开始处)无条件地消除任何 defaults 行的影响。nodefaults 行正是为此目的而提供的。例如,将下行插入到配置文件时,这不仅将废止由此前任何默认通道建立的所有设置,而且可使配置返回到如同没有指定任何默认值的应用状态:

nodefaults

与常规通道块相同的是,必须用空行将每个 defaultsnodefaults 通道块与其他的通道块分割开。defaultsnodefaults 通道块为配置文件中仅有的能出现在本地通道之前的通道块。但与任何其他通道块相同,它们必须出现在最后的重写规则之后。


配置 SMTP 通道



根据安装的类型,Messaging Server 在安装时可提供几种 SMTP 通道(见下表)。这些通道可在 TCP/IP 之上执行 SMTP。多线程的 TCP SMTP 通道包括一个在 Dispatcher 控制下运行的多线程 SMTP 服务器。外发的 SMTP 邮件由通道程序 tcp_smtp_client 处理,并在需要时在 Job Controller 的控制下运行。


表 8-3 SMTP 通道


通道

定义

tcp_local

从远程 SMTP 主机接收入站邮件。根据是否使用智能主机/防火墙配置,可以直接发送出站邮件到远程 SMTP 主机或发送出站邮件到智能主机/防火墙系统。

tcp_intranet

在 intranet 内部接收和发送邮件。

tcp_auth

用作 tcp_local 的切换通道,授权的用户可切换到 tcp_auth 通道,以此躲避“转接-阻止”之限制。

tcp_submit

可在保留提交端口 587 上接受提交的邮件,通常为来自用户代理程序的邮件(见 RFC 2476)。

tcp_tas

IA 特殊通道,通常为提供“一体化通信”业务的网站使用。

您可按本节的说明,通过添加或移除通道关键字之方法修改这些通道的定义或创建新通道。此外,还可用一选项文件控制 TCP/IP 通道的各种特性。这种选项文件必须存储在 MTA 配置目录下(ServerRoot/msg-instance/imta/config),并命名为 x_option,其中 x 是通道的名字。有关详细信息,请见 iPlanet Messaging Server Reference Manual

本节分为以下分节:


配置 SMTP 通道选项

TCP/IP 通道选项文件用于控制 TCP/IP 通道的各种特性。通道选项文件必须存储在 MTA 配置目录下,并命名为 x_option,这里的 x 是通道的名字。例如,/ServerInstance/imta/config/tcp_local_option

选项文件由一个或多个关键字及其相关值组成。例如,在选项文件中包含 DISABLE_EXPAND 关键字并且将它的值设置为 1,即可禁用服务器上的邮件发送列表之扩展功能。

其它选项文件关键字可用来:

有关所有通道选项关键字及其语法方面的信息,请参阅 iPlanet Messaging Server Reference Manual


SMTP 命令和协议支持

可以指定 SMTP 通道是否支持某种 SMTP 命令,例如 EHLO、ETRN 和 VRFY。也可以指定该通道是否支持 DNS 域验证,哪些字符作为行结束符等等。本节描述以下内容:

表 8-4 总结了在此部分中说明的关键字。


表 8-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 keywords

指定通道如何处理 VRFY 命令

domainvrfy

用完整地址发布 VRFY 命令。

localvrfy

用本地地址发布 VRFY 命令。

novrfy

不发布 VRFY 命令。

vrfyallow

提供对 VRFY 命令的信息响应。

vrfydefault

依据通道的 HIDE_VERIFY 选项设置,提供对 VRFY 命令的默认响应。

vrfyhide

提供对 SMTP VRFY 命令的模糊响应。

DNS 域检验

指定通道是否执行 DNS 域验证

mailfromdnsverify

检验用于 MAIL FROM: 命令的域在 DNS 中是否存在。

nomailfromdnsverify

对用于 MAIL FROM: 命令的域在 DNS 中是否存在不进行检验。

字符集和八位数据

指定通道如何处理八位数据
备注:虽然这些关键字常常用在 SMTP 通道上,但它们与任何类型的通道都有潜在的关系。

charset7

与 7 位文本邮件相关的默认字符集

charset8

与 8 位文本邮件相关的默认字符集

charsetesc

与 7 位文本邮件相关的默认字符集,包括换码字符

eightbit

通道支持八位字符。

eightnegotiate

通道应尽可能协调八位传输的使用。

eightstrict

通道应拒绝那些包括未经协调的八位数据的邮件。

sevenbit

通道不支持八位字符;八位字符必须编码。

协议流

指定通道使用的协议流等级

streaming

用于控制在与一通道相关的协议中使用的协议流等级。


通道的 AICI 协议选择和行结束符

关键字: smtp, nosmtp, smtp_crlf, smtp_cr, smtp_crorlf, smtp_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 邮件并拒绝任何具有非标准行结束符的邮件,则可指定 stmp_crlf。


EHLO 命令支持

关键字: ehlo, noehlo, checkehlo

SMTP 协议已被扩展(RFC 1869)以允许附加命令的协调。这可通过使用新的 EHLO 命令完成,用以代替 RFC 821 中的 HELO 命令。扩展的 SMTP 服务器通过提供所支持的扩展列表来响应 EHLO。未扩展的服务器将返回一个不可知命令错误,而客户机则发送旧的 HELO 命令。

这种退却策略通常在扩展和未扩展的服务器上都能使用。然而问题会出现在根据 RFC 821 不实施 SMTP 的服务器上。特别的,一些不符合标准的服务器在收到一个不可知的命令时会切断当前连接。

SMTP 客户机实施这样一种策略,即当任何服务器在收到 EHLO 后切断连接时,尝试重新连接和使用 HELO。然而,如果远程服务器在收到 EHLO 时不仅切断了连接而且进入有问题的状态,这种策略将不会起作用。

通道关键字 ehlonoehlocheckehlo 正是为处理这种情况而提供的。关键字 ehlo 可指示 MTA 对所有初始连接请求使用 EHLO 命令。关键字 noehlo 可禁用所有 EHLO 命令。关键字 checkehlo 可用于检测远程 SMTP 服务器返回的响应标志区中的字符串“ESMTP”。如果发现该字符串,则使用 EHLO,如果未发现,则使用 HELO。默认操作设置是对所有初始连接请求使用 EHLO,除非标志区行包括字符串“fire away”,在这种情况下须使用 HELO,请注意没有关键字对应于这种默认行为,它位于来自关键字 ehlocheckehlo 的行为之间。


ETRN 命令支持

关键字: allowetrn, blocketrn, disableetrn, domainetrn, silentetrn, sendetrn, nosendetrn, novrfy

定义于 RFC 1985 中的 ETRN 命令提供了对 SMTP 服务的扩展,因而一 SMTP 客户通过与服务器的相互作用使服务器有机会启动对其队列的处理,以使其中的邮件去往给定的主机。

使用 ETRN 时,SMTP 客户机可请求远程 SMTP 服务器启动对发送到此 SMTP 客户机的邮件队列的处理。这样,ETRN 提供了一种实现为来到自身系统的邮件而“轮询”远程 SMTP 系统的方法。这对于相互间只具瞬态连接的系统很有用,例如,作为只具拨号连接上网的其它网站的第二邮件交换(MX)主机而建立的站点。通过启用此命令,您可允许远程服务器(可能是拨号服务器)请求传递其邮件。

在 SMTP ETRN 命令行上,SMTP 客户机可指定邮件到达系统的名称(通常是 SMTP 客户系统自己的名称)。如果远程 SMTP 服务器支持 ETRN 命令,则可触发执行一分开的进程,以与具该名称的系统连接并为此系统发送任何等待传递的邮件。


响应 ETRN 命令
当发送邮件的 SMTP 客户机发布 ETRN 命令时,关键字 allowetrnblocketrndomainetrnsilentetrn 可控制 MTA 响应,以请求 MTA 尝试传递 MTA 队列中的邮件。

默认状态下,MTA 将尝试执行所有 ETRN 命令,即启用关键字 allowetrn。可以通过在通道定义中包含关键字 blocketrn 以指定 MTA 不执行 ETRN 命令。

您可指定 MTA 执行所有 ETRN 命令,但不回送域所匹配的通道名,并且 MTA 将尝试包含关键字 silentetrn 的运行。关键字 domainetrn 可指定 MTA 仅执行对域有指定的 ETRN 命令,同时也可使 MTA 不回送域所匹配的通道名以及 MTA 将尝试运行者。

disableetrn 可用来全面禁用对 ETRN 命令的支持;SMTP 服务器并不把 ETRN 作为支持的命令而加以通告。


发送 ETRN 命令
通道关键字 sendetrnnosendetrn 可控制 MTA 是否在 SMTP 连接开始时发送 ETRN 命令。默认的关键字是 nosendetrn,意指 MTA 将不发送 ETRN 命令。关键字 sendetrn 可通告 MTA 发送一 ETRN 命令,如果远程 SMTP 服务器支持 ETRN 的话。关键字 sendetrn 后面应跟随正在请求其邮件接收传递尝试的系统名。


VRFY 命令支持

关键字: domainvrfy, localvrfy, vrfyallow, vrfydefault, vrfyhide

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=1 已被指定。关键字 vrfyhide 可指示 MTA 仅发布一个含糊的、不明确的响应。这些关键字允许针对每个通道的 VRFY 响应控制,这与 HIDE_VERIFY 选项相反,后者通常应用于所有外来的通过相同的 SMTP 服务器处理的 TCP/IP 通道。


DNS 域检验

关键字: mailfromdnsverify, nomailfromdnsverify

如果在外来 TCP/IP 通道上设置 mailfromdnsverify,则可使 MTA 验证在 DNS 中存在的条目,即与其相关的域用在 SMTP MAIL FROM 命令上,而且若无此条目就拒收邮件。默认关键字 nomailfromdnsverify 意味着不执行这种验证。请注意在返回地址域上执行 DNS 检查会导致拒收一些原本希望有效的邮件。(例如,来自合法的站点而仅仅没有登记域名的邮件,或在 DNS 中有错误信息时的邮件),这与宽容面对接收的邮件和通过对 Internet 主机的要求(见 RFC 1123)得到电子邮件的精神是相违背的。然而,一些站点会希望在具有假地址(来自不存在的域)的大宗商业电子邮件(UBE)被发送的情况下执行这种检查。


字符集标注和八位数据

关键字: charset7, charset8, charsetesc, sevenbit, eightbit, eightnegotiate, eightstrict


字符集标注
MIME 规范提供的机制可用来在纯文本邮件中标注字符集。具体而言,也就是可将 charset= 参数指定为 Content-type: 标题行的一部分。MIME 规范中定义了各种字符集名称,其中包括 US-ASCII(默认值)、ISO-8859-1、ISO-8859-2 以及后来定义的许多字符集名称。

有些现有的系统和用户代理程序没有提供生成这些字符集标注的机制;其结果是,某些纯文本邮件将可能无法被适当标注。通道关键字 charset7charset8charsetesc 提供了一种针对每个通道的机制,对于缺少字符集标注的邮件头,可用来指定插入的字符集名。每个关键字需要一个可给出字符集名的参数。系统不检查这些名称的有效性。但要注意,只能针对 MTA 表目录中的字符集定义文件 charsets.txt 中指定的字符集进行字符集转换。应尽可能地使用这个文件中定义的名字。

charset7 字符集名仅在邮件包含七位字符时使用;charset8 字符集名则在邮件包含八位数据时使用;charsetesc 在邮件仅包含七位数据且恰巧也包含换码符时使用。如果没有指定适当的关键字,则不会有字符集名被插入到 Content-type: 标题行。

许注意的一点是,charset8 关键字还可用来控制邮件头中八位字符的 MIME 编码(此中的八位数据是绝对的非法)。如果没有指定 charset8 值,MTA 通常只以 MIME 对在邮件头中遇到的任何(非法)八位数据进行编码,并将之标注为 UNKNOWN charset。

这些字符集说明不会覆盖现存的标注,也就是说,如果一邮件已具有字符集标注或属于文本类型以外的类型,这些说明将不起作用。通常较为适宜的做法是以下列方式标注 MTA 本地通道:

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

如果邮件中没有内容类型报头,则添加之。该关键字还可添加 MIME 版本:的报头,如果缺失的话。

关键字 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 进行流操作。默认值为零。


TCP/IP 连接和 DNS 查找支持

您可指定有关服务器如何处理 TCP/IP 连接和地址查找的信息。本节说明以下内容:

表 8-5 列出了在本节描述的关于 TCP/IP 连接和 DNS 查找的关键字。


表 8-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 地址的列表。

defaultnameservers

参考 TCP/IP 栈的名字服务器选择。

lastresort

指定最后使用的主机

切换关键字

选择入站邮件备用通道的控制功能

allowswitchchannel

允许从 switchchannel 通道切换到此通道。

noswitchchannel

逗留在服务器通道,不切换到与源主机相关的通道,不允许被切换。

switchchannel

从服务器通道切换到与原主机相关的通道。

tlsswitchchannel

TLS 协调成功时切换到另一通道。

saslswitchchannel

当 SASL 认证成功时切换到另一通道。

目标主机选择和邮件副本的存储

指定一目标主机系统以及邮件副本如何存储。

daemon

无论信封地址是什么都连接到一个特定的主机系统。

single

指定应在通道上为每个目标地址创建邮件的一个独立副本。

single_sys

为每个使用的目标系统创建邮件的一个单独副本。


TCP/IP 端口号和接口地址

关键字: port, interfaceaddress

当发送邮件时 TCP/IP 通道上的 SMTP 通常连接到端口 25。关键字 port 可用于指示 TCP/IP 通道上的 SMTP 连接到一个非标准端口。请注意此关键字是对 Dispatcher 选项 PORT(它控制 MTA 以决定为接受 SMTP 连接须监听哪些端口)的补充。

关键字 interfaceaddress 控制一 TCP/IP 通道为出站连接作为源地址而连通的地址,也就是说,在多接口地址的系统中,此关键字决定了哪个地址将在 MTA 发送外发 SMTP 邮件时作为源 IP 地址使用。请注意此关键字是对 Dispatcher 选项 INTERFACE_ADDRESS(它控制 TCP/IP 通道以决定为接受外来连接和邮件须监听哪个接口地址)的补充。


高速缓存通道连接信息

关键字: cacheeverything, nocache, cachefailures, cachesuccesses

使用 SMTP 协议的通道维护着一个包含先前连接尝试的历史记录的缓存。此缓存用于避免多次重复连接不可存取的主机,从而避免浪费许多时间并耽搁其它邮件。缓存是针对每个进程的,它仅在出站 SMTP 传递通道的一次运行期间存在。

高速缓存通常即记录连接成功也记录连接失败。(成功的连接尝试被记录下来以弥补以后的失败 - 曾经连接成功但本次连接失败的主机在进行下次连接尝试前的延迟不会像没有尝试过连接或先前连接失败的主机那样长。)

然而,MTA 使用的缓存策略不是对所有情况都必定适当。因此提供了若干通道关键字用以调整 MTA 缓存。

关键字 cacheeverything 启用所有形式的缓存并且是默认的。关键字 nocache 禁用所有缓存。

关键字 cachefailures 启用连接失败(而非连接成功)的缓存 - 这在一定程度上促使比 cacheeverything 更严格的重新连接。最后,cachesuccesses 仅缓存成功连接。最后这个关键字与 SMTP 通道的 nocache 关键字等效。


反向 DNS 查找

关键字: forwardchecknone, forwardchecktag, forwardcheckdelete

通道关键字 forwardchecknoneforwardchecktagforwardcheckdelete 能够改变反向 DNS 查找的效果。这些关键字能够控制 MTA 以决定是否对用 DNS 反向查找所找到的 IP 名进行正向查找,如果这种正向查找被请求,则指定如果 IP 名的正向查找与连接的原 IP 值不匹配时 MTA 如何做。

forwardchecknone 是默认关键字,意味着不进行任何正向查找。关键字 forwardchecktag 告诉 MTA 在每个反向查找后进行正向查找,而且如果用正向查找得到的数字与原始连接值不匹配,则将 IP 名标记上星号(*)。关键字 forwardcheckdelete 告诉 MTA 在每个反向查找后进行正向查找,如果名字的正向查找与原始连接的 IP 地址不匹配,则忽略(删除)反向查找返回的名字,在这种情况下,MTA 使用原 IP 地址取而代之。



备注: 正向查找与原 IP 地址不匹配的情况在许多站点是正常的,在这些站点里,更为“普遍”的 IP 名被用于多个不同的 IP 地址。




IDENT 查找

关键字: identnone, identnonelimited, identtnonnumeric, identnonesymbolic, identtcp, identtcpnumeric, identtcpsymbolic, identtcplimited

关键字 IDENT 可通过 IDENT 协议控制 MTA 对连接和查找的处理方式。有关 IDENT 协议的说明,请见 RFC 1413。

关键字 identtcpidenttcpsymbolicidenttcpnumeric 可指示 MTA 使用 IDENT 协议执行连接和查找。按下列方式将从 IDENT 协议获得的信息(通常就是进行 SMTP 连接的用户的标识)插入到邮件的 Received: 邮件头:



备注: 远程系统必须为使用 identtcpidenttcpsymbolicidenttcpnumeric 所导致的 IDENT 查找运行一个 IDENT 服务器。



要知道,IDENT 查询尝试有可能招致性能受损。路由器会像“黑洞”那样吞食掉大量针对不可识别的端口的连接尝试。如果这种情况发生在 IDENT 查询中,则在连接超时前 MTA 根本侦听不到反馈(由 TCP/IP 栈控制的超时,通常为 1 至 2 分钟)。

另一影响性能的因素发生在 identtcpindenttcplimitedidenttcpsymbolicidenttcpnumeric 进行比较的时候。使用 identtcpidenttcplimitedidenttcpsymbolic 调用 DNS 反向查找,会导致某些额外开销,以获得对用户更为友好的主机名。

关键字 identnone 禁用 IDENT 查找,但执行指定 IP 地址到主机名的转换,而且 IP 值和主机名都包含在邮件的 Received: 邮件头中。这是默认值。

关键字 identnonesymbolic 禁用 IDENT 查找,但执行 IP 到主机名的转换,仅主机名包含在邮件的 Received: 邮件头中。

关键字 identnonenumeric 禁用此 IDENT 查找,并禁止通常的从 IP 地址到主机名的 DNS 反向查找转换,并以 Received: 邮件头中较少的用户友好信息为代价而使性能得到改善。

IDENT 查找,反向 DNS 查找,和显示于 Received: 邮件头中的信息等方面,关键字 identtcplimitedidentnonelimited 分别与 identtcpidentnone 具有同样的效果。它们的不同之处在于:使用 identtcplimitedidentnonelimited,IP 常值地址总是作为任何由 switchchannel 引起的通道切换的基础,而不管 DNS 反向查找是否成功地确定了一个主机名。


TCP/IP MX 记录支持

关键字: mx, nomx, defaultmx, randommx, nonrandommx

一些 TCP/IP 网络支持 MX(邮件转发)记录的使用而另一些则不支持。如果 MTA 系统所连接的网络不提供对 MX 记录支持,TCP/IP 通道程序可配置成不使用 MX 记录。关键字 mxnomxdefaultmxrandommxnonrandommx 控制着对 MX 记录支持。

关键字 randommx 指定应进行 MX 查找并且相等优先级的 MX 记录值应按随机顺序处理。关键字 nonrandommx 指定应进行 MX 查找并且相等优先级的 MX 记录值应按接收顺序处理。

关键字 mx 目前等同于 nonrandommx,在以后的版本中可能改为与 randommx 等同。关键字 nomx 禁用 MX 查找。关键字 defaultmx 指定:如果网络支持 MX 记录则应使用 mx。在支持任何形式的 MX 查找的通道上,关键字 defaultmx 是默认的。


名字服务器查找

关键字: nameservers, defaultnameservers

当执行名字服务器查找时,可用通道关键字 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 1tlsswitchchannel 1

以下关键字可用来控制来件的备用通道选择: switchchannel, allowswitchchannel, noswitchchannel

当 MTA 从远程系统接受一外来连接时,必须选择一个与其相联系的通道。通常此决定基于所使用的传输方式;例如,外来的 SMTP over TCP/IP 连接自动与通道 tcp_local 相联系。

然而,当具有不同特征的多个外发通道以相同的传输用于处理不同系统时,此约定被打破。在这种情况下,外来连接和外发连接不与相同的通道相联系,其结果是对应的通道特征不与远程系统相联系。

关键字 switchchannel 提供了解决这一难题的办法。如果 switchchannel 被指定在服务器所使用的初始通道上,连接的(原)主机的 IP 地址将与通道表进行匹配,如果匹配成功源通道会因此而改变。如果没有找到匹配的 IP 地址或与初始的默认外来通道相匹配,MTA 可以尝试使用通过 DNS 反向查找得到的主机名来进行匹配。源通道可以改变为具有 switchchannelallowswitchchannel(默认)标记的任何一个通道。关键字 noswitchchannel 指定没有通道会与此通道相互切换。

除了针对与一服务器相联系的通道外,针对其他任何对象指定 switchchannel 都不会起作用。目前,switchchannel 仅影响 SMTP 通道,但实际上没有其它通道使用 switchchannel 是合理的。


目标主机选择

关键字: daemon, single, single_sys

daemon 关键字的解释和使用取决于其所应用的通道类型。

关键字 daemon 用于 SMTP 通道以控制目标主机的选择。

通常,通道要与被处理邮件的信封地址上列出的任何主机连接。关键字 daemon 用于指示通道不考虑信封地址,取而代之的是连接到一特定的远程系统,一般为防火墙或邮件集线器系统。实际的远程系统名应直接出现在 daemon 关键字之后,如下例所示:

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

如果关键字 daemon 后面的参数不是一个全限定域名,此参数将被忽略并且通道将连接到通道的正式主机。当指定防火墙或网关系统名为正式主机名时,关键字 daemon 的参数通常被指定为路由器,如下例所示:

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

其它重要的关键字有 singlesingle_sys。关键字 single 指定应为每个目标地址在通道上创建一个单独的邮件副本。关键字 single_sys 为每个所使用的目标系统创建一个单一的邮件副本。请注意,对于邮件入队于其中的每个通道,至少为每个邮件创建一个副本,而不考虑所使用的关键字。


SMTP 认证、SASL 和 TLS

关键字: maysaslserver, mustsaslserver, nosasl, nosaslserver, saslswitchchannel, nosaslswitchchannel)

您可控制 Messaging Server 是否支持使用 SASL(简单认证和安全层)来认证 SMTP 服务器。SASL 在 RFC 2222 中定义。有关 SASL、SMTP 认证和安全的详细信息,请参阅第 12 篇 “配置安全和访问控制”

通道关键字 maysaslservermustsaslservernosaslnosaslserveritchchannelsaslswitchchannel 都可由 SMTP 通道(例如 TCP/IP 通道)用来配置 SMTP 协议期间的 SASL(SMTP AUTH)之使用。

默认关键字是 notls,这意味着不允许有或尝试 SASL 认证。它包含 nosaslserver,这意味着不允许有 SASL 认证。如果指定了 maysaslserver,则会使 SMTP 服务器允许客户机尝试使用 SASL 认证。如果指定了 mustsaslserver,则会使 SMTP 服务器坚持要客户机使用 SASL 认证;在远程客户机没有成功地验证之前,SMTP 服务器不接受邮件。

在客户成功使用 SASL 的情况下,使用 saslswitchchannel 可使外来连接切换到指定的通道。这需要一个值,用以说明切换到哪个通道。


使用邮件头中 SMTP AUTH 的认证地址

关键字: authrewrite

authrewrite 通道关键字可用于在源通道上使 MTA 将认证的始发者信息(如果有的话)传送到邮件头中。使用的信息通常为 SMTP AUTH,但也可通过 FROM_ACCESS 映射替换之。根据表 8-6,关键字 authrewrite 需有一整数值。

表 8-6 authrewrite 整数值


数值

用法

1

如果已有 Resent-from:Resent-sender:,则添加一个 Sender: 邮件头或 Resent-sender: 邮件头,以包含 AUTH 原发件人。

2

添加一个包含 AUTH 原发件人的 Sender: 邮件头。


指定 Microsoft Exchange 网关通道

关键字: msexchange, nomsexchange

通道关键字 msexchange 可用于在 TCP/IP 通道上通知 MTA 这是一个可与 Microsoft Exchange 网关和客户机通信的通道。当放置在启用了 SASL 的入站 TCP/IP 通道上时(通过 maysaslservermustsaslserver 关键字启用),它会使 MTA 的 SMTP 服务器通告 AUTH 使用“不正确的”格式(此乃基于原来的 ESMTP AUTH 规范,而不是较新的修正过的 AUTH 规范,前者实际上不能与正确的 ESMTP 用法兼容)。例如,有些 Microsoft Exchange 客户程序并不能识别正确的 AUTH 格式,而只能识别不正确的 AUTH 格式。

通道关键字 msexchange 还可通告(识别)无效的 TLS 命令。

nomsexchange 是默认值。


传输层安全

关键字: maytls, maytlsclient, maytlsserver, musttls, musttlsclient, musttlsserver, notls, notlsclient, notlsserver, tlsswitchchannel

通道关键字 maytlsmaytlsclientmaytlsservermusttlsmusttlsclientmusttlsservernotlsnotlsclientnotlsservertlsswitchchannel 用于配置在 SMTP 协议有效期间如 TCP/IP 通道这样的基于 SMTP 的通道对 TLS 的使用。

默认关键字是 notls,意味着 TLS 不被允许或尝试。它包含关键字 notlsclient,其意味着 MTA SMTP 客户不会在外发连接上尝试 TLS 使用(在外发连接中不发布 STARTTLS 命令),还包含关键字 notlsserver,其意味着 MTA SMTP 服务器不会在外来连接上允许 TLS 使用(STARTTLS 扩展没有被 SMTP 服务器公布,其命令本身也未采用)。

指定 maytls 使 MTA 给外来连接提供 TLS 并在外发连接上尝试 TLS。它包含关键字 maytlsclient,其意味着如果发送邮件到一个支持 TLS 的 SMTP 服务器,MTA SMTP 客户在发送时将尝试 TLS 使用,还包含关键字 maytlsserver,其意味着 MTA SMTP 服务器将公布对 STARTTLS 扩展的支持并在接收邮件时允许使用 TLS。

指定 musttls 使 MTA 在外发和外来连接上坚持 TLS 使用;不会与协调 TLS 使用失败的远程系统交换电子邮件。它包含关键字 musttlsclient, 其意味着 MTA SMTP 客户在发送外发邮件时坚持 TLS 使用并且不会发送到没有成功协调 TLS 使用的 SMTP 服务器(MTA 将发布 STARTTLS 命令且此命令必须成功)。它也包含关键字 musttlsserver, 其意味着 MTA SMTP 服务器将公布对 STARTTLS 扩展的支持并当接收外来邮件时坚持使用 TLS,而且将不从没有成功协调 TLS 使用的客户处接收邮件。

关键字 tlsswitchchannel 用于在一客户成功协调 TSL 的情况下使外来连接切换到指定的通道。它需要一个值用以说明切换到哪个通道。


配置邮件处理和传递



可配置服务器以确定何时尝试基于特定标准的邮件传递。还可指定任务处理的参数,如服务任务的处理限制或何时生成新的 SMTP 通道线程。本节描述以下内容:

有关邮件处理和传递方面的概念性信息,请参见“作业控制器”“作业控制器文件”

表 8-7 总结了在此部分中说明的关键字。


表 8-7 邮件处理和传递所用的关键字


关键字

定义

Immediate Delivery

定义邮件立即传递规范。

immnonurgent

在提交紧急、普通和非紧急邮件后启动立即传递。

Deferred Delivery

定义延迟任务的传递规范。

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

当地址数量超过此限制时,保存来件暂不处理。

无法传递邮件通知

指定何时发送无法传递邮件通知。

notices

指定在发送通知和退回邮件之前可以耗费的时间量。

nonurgentnotices

对于具有非紧急优先级的邮件,指定在发送通知和退回邮件之前可以耗费的时间量。

normalnotices

对于具有普通优先级的邮件,指定在发送通知和退回邮件之前可以耗费的时间量。

urgentnotices

对于具有紧急优先级的邮件,指定在发送通知和退回邮件之前可以耗费的时间量。


设置通道的方向性

关键字: master, slave, bidirectional

可用三个关键字指定某通道是用主程序提供服务(master)还是用从属程序(slave)提供服务,或由两个程序(bidirectional)同时提供服务。如果没有指定任何关键字,则为 bidirectional。这些关键字可在邮件于通道中排队期间决定 MTA 是否启动传递操作。

这些关键字的使用反映了相关通道程序的某些基本特点。针对 MTA 支持的各种通道的说明,可表明这些关键字应在何时何处使用。


执行延迟传递日期

关键字: deferred, nodeferred

通道关键字 deferred 可识别并执行 Deferred-delivery: 标题行。标有 deferred 传递日期(将来日期)的邮件将保留在通道队列中,直到其过期退回或到了延迟传递日期时为止。有关 Deferred-delivery: 标题行的格式和使用方面的详细信息,请参见 RFC 1327。

关键字 nodeferred 为默认值。需说明的一点是,虽然 RFC 1327 有规定一定要支持延迟邮件处理功能,但执行时实际上是让用户把邮件系统作为其磁盘配额的扩展而使用。


指定无法传递邮件的重新传递频率

关键字: backoff, nonurgentbackoff, normalbackoff, urgentbackoff, notices

系统设置是:对于有传递失败情况的邮件,重新传递的频率取决于邮件的优先级别。以下是尝试传递之间的默认时间间隔(分)。优先级别后面的第一个数表示初次传递失败后第一次尝试重新传递的分钟数:

urgent: 30, 60, 60, 120, 120, 120, 240
normal: 60, 120, 120, 240, 240, 240, 480
nonurgent: 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,使用方法说明,请见 iPlanet Messaging Server Reference Manual

在下一个示例中:

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

一正常邮件是在初次传递失败后 30 分钟时尝试重新传递的,随后的重新传递尝试如下:第一次后的一个小时、第二次后的八个小时、第三次后的一天、第四次后的两天、第五次后的一星期,然后每星期尝试一次,直至关键字 notices 指定的时限到期为止。如果无法传递,系统将生成一则“无法传递”之通知,并将邮件退回给发件人。

在最后的示例中:

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

对于所有无法传递的邮件,不论优先级如何,都将在初次传递失败后 30 分钟时尝试重新传递,并在第一次后的两个小时重试,第二次后的十六个小时重试,第三次后的三十六小时重试,第四次后的三天重试,然后每三天重试一次,直至关键字 notices 指定的时限到期为止;除非您用 nonurgentbackoffnormalbackoffurgentbackoff 关键字替换之。如果无法传递,系统将生成一则“无法传递”之通知,并将邮件退回给发件人。


通道执行任务的处理池

关键字: pool

您可通过配置使不同的通道在同一存储池中运行,以便共享资源。还可能需要配置其他通道使之运行于专用于某特定通道的存储池中。在每一个存储池中,根据邮件的优先级自动将其存储到不同的处理队列中。存储池中高优先级的邮件在低优先级邮件之前得到处理。(请参见“基于大小的邮件优先级”。)

通过使用关键字 pool,您可在创建任务项的处理池中,以通道对通道为基础选择处理池。关键字 pool 之后必须有当前通道传递任务应使用的存储池的名称。存储池名称不得超过 12 个字符。

有关 Job Controller 的工作原理和配置信息,请参见“作业控制器文件”“作业控制器”“服务任务限制”。)


服务任务限制

关键字: maxjobs, filesperjob

每当邮件排入通道的队列时,作业控制器可确保有一项传递邮件的作业在运行。这可能涉及到启动新的作业进程、添加线程,或者仅标示出已有一项作业在运行。但是,一个单独服务任务不能够充分保证即时传递所有邮件。有关 Job Controller 的工作原理和配置信息,请参见“作业控制器文件”“通道执行任务的处理池”“作业控制器”。)

对于某给定安装而言,为传递邮件而启动的最大进程数和线程数量应有一个合适的值。最大数量取决于诸如处理器个数、磁盘速度和连接的特性等因素。在 MTA 配置中,可以进行如下的控制:

为一给定通道的运行可启动进程的最大数量应是下面两个值中的较小者:为通道设置的 maxjobs 和为通道运行所用存储池设置的 JOB_LIMIT

假设某邮件需要处理。通常,任务控制器按如下所述那样启动新进程:

特别是对于 SMTP 通道,当邮件排入不同主机的队列中时即启动新线程或新进程。因此,对于 SMTP 通道,任务控制器是按如下所述方式启动新进程的。假定有一邮件需要处理:

还可参阅“SMTP 通道线程”

关键字 filesperjob 可用于使 MTA 创建额外的服务任务。此关键字以一单个正整数为参数,用于指定在创建多于一个的服务任务来处理队列条目之前,必须有多少个队列条目(也就是文件)被发送到相关的通道之中。如果给出的参数值小于或等于零,则被解释为只请求一个队列服务任务。没有指定关键字等同于将关键字的值指定为零。应充分重视此关键字的效果;计算出的数值越大,可实际创建的服务任务的个数就越多。

关键字 filesperjob 用给定值去除实际队列条目(即文件)的个数。注意,源于一给定邮件的队列条目的个数受很多因素的影响,包括(但不限于)关键字 singlesingle_sys 的使用以及邮件列表中邮件头修改操作的规定等。

关键字 maxjobs 设置能够同时运行的服务任务个数总和的上限。该关键字后必须跟有一个整数值,如果计算出的服务任务个数大于此值,则实际仅创建 maxjobs 个任务。如果没有指定 maxjobs,此值的默认值为为 100。通常 maxjobs 设置为小于或等于能同时运行在通道所使用的任何服务存储池或存储池组中的任务合计数。


基于大小的邮件优先级

关键字: urgentblocklimit, normalblocklimit, nonurgentblocklimit

关键字 urgentblocklimitnormalblocklimitnonurgentblocklimit 可用于指示 MTA 基于大小降低邮件的优先级。这些关键字影响处理邮件时任务控制器所应用的优先级。


SMTP 通道线程

关键字: threaddepth,

多线程 SMTP 客户程序把发送到不同目的地的邮件分发到不同线程中。关键字 threaddepth 可用于指示多线程 SMTP 客户程序在任意一线程中只处理规定数目的邮件,甚至对于所有发向同一目的地的邮件(正常情况下在一个线程中处理)也使用额外的线程。

若与通道相连接的 SMTP 服务器能处理多个并发连接,使用 threaddepth 可能对在一守护程序路由器 TCP/IP 通道 - 一种与单个指定 SMTP 服务器连接的 TCP/IP 通道 - 上实现多线程特别有用。

每当通道待处理邮件的增长超过 threaddepth 的倍数时,任务控制器试图增加专用于处理该通道队列中的邮件的进程总数。对于多线程通道,任务控制器建议任何处理该通道邮件的进程启动新线程,或当所有任务都有该通道所允许的最大线程数(tcp_* 通道选项中的 MAX_CLIENT_THREADS)时启动新进程。对于单线程通道将启动新进程。注意,当达到通道限任务制(maxjobs)或存储池任务限制(JOB_LIMIT)时,任务控制器将不再启动新任务。


多地址扩展

关键字: expandlimit, expandchannel, holdlimit

大多数通道在传输每一个入站邮件时都支持指定多个收件人地址。在单个邮件中指定多个收件人地址有可能导致邮件传输处理的延迟(联机延迟)。如果延迟时间太长,可能会发生网络超时,这又可能导致反复尝试邮件提交和其他的问题。

MTA 提供了一个特别的功能,当为单个邮件指定了超过给定数目的地址时,将该邮件强制为延迟(离线)处理。延迟处理能够降低大量的联机延迟。注意,额外的开销也只是被延迟了,而没有完全避免。

该功能需要在一定的组合下才能激活,例如,一般为 reprocessing 通道和 expandlimit 关键字。关键字 expandlimit 取一个整数参数,以指定在延迟处理之前可接受多少来自通道的邮件中的地址。如果没有指定 expandlimit 关键字,默认值为无限大。一 0 值强制延迟处理所有来自通道的地址。

务必不要为本地通道或 reprocessing 通道自身指定关键字 expandlimit,这样指定的后果是无法预测的。

实际用来执行延迟处理的通道可以使用关键字 expandchannel 指定,默认状态下使用 reprocessing 通道,如果没有指定 expandchannel,那么使用另外某些重处理通道或处理通道可能对特定目的来讲是有用的。如果通过 expandchannel 指定了处理延迟的通道,该通道应该是重处理通道或处理通道,指定其他类型的通道可能导致无法预测的结果。

reprocessing 通道或任何用于执行延迟处理的通道,必须添加到 MTA 配置文件中以便 expandlimit 关键字能发挥作用。如果配置是由 MTA 配置实用程序构建,那么一个重处理通道应该已经存在。

格外大的收件人地址列表经常是充斥大宗商业电子邮件的征兆。关键字 holdlimit 通知 MTA 当来自通道的邮件导致超过指定数量的收件人时,将其标记为 .HELD 邮件并且排入到 reprocess 通道(或任何通过 expandchannel 关键字指定的通道)中。这些文件将滞留在 reprocess 队列中不予处理,等待 MTA Postmaster 的人工干预。


启用服务转换功能

关键字: service, noservice

不论 CHARSET-CONVERSION 条目为何,关键字 service 都无条件地启用服务转换功能。如果设定了 noservice 关键字,则进入此通道的邮件服务转换就必须通过 CHARSET-CONVERSION 启用。


配置地址处理功能



本节说明处理地址所需使用的关键字。这一部分由下列分节组成:


地址类型和约定

关键字: 822, 733, uucp, header_822, header_733, header_uucp

这组关键字用于对通道支持的地址类型进行控制。类型有传输层使用的地址(邮件信封)和邮件头使用的地址之别。


822(sourceroute)

源路由信封地址。该通道全面支持 RFC 822 格式的信封寻址约定,其中包括源路由。关键字 sourceroute 也可作为 822 的同义词使用。如果没有指定其它信封地址类型关键字,则为默认关键字。


733(percents)

百分号信封地址。除了源路由外,该通道全面支持 RFC 822 格式的信封寻址;源路由则应用百分号约定重写。关键字 percents 也可作为 733 的同义词使用。


备注: 在 SMTP 通道上使用 733 地址约定可致使这些常规被携带到 SMTP 信封中的传输层地址中。这种情况是违反 RFC 821 规定的。所以只有在确信必要时,才使用 733 地址约定。




uucp(bangstyle)

Bang-style(惊叹号式)信封地址。这种通道在信封中采用与 RFC 976 bang-style 地址约定相符的地址(例如,此乃 UUCP 通道)。关键字 bangstyle 也可作为 uucp 的同义词使用。


header_822

源路由邮件头地址。该通道全面支持 RFC 822 格式的邮件头寻址约定,其中包括源路由。如果没有指定其它邮件头地址类型关键字,则为默认关键字。


header_733

百分号邮件头地址。除了源路由外,该通道全面支持 RFC 822 格式的邮件头寻址;源路由则应用百分号约定重写。


备注: 在邮件头中使用 733 地址约定可能会违反 RFC 822 和 RFC 976 之规定。所以,请只在确信该通道所连接的系统不能处理源路由地址时,才使用该关键字。




header_uucp

UUCP 或 bang-style 邮件头地址。建议不要使用该关键字。因为这种用法违反 RFC 976 规约。


解释使用 ! 和 % 的地址

关键字: bangoverpercent, nobangoverpercent, percentonly

地址须永远依照 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 路由。当设定了这个关键字时,百分号则被解释为路由。


在地址中添加路由信息

关键字: exproute, noexproute, improute, noimproute

MTA 处理地址时采用的寻址模型假定:所有系统都知道所有其它系统的地址,并知道如何获取这些地址。不幸的是,这种理想的处理方法并非适用于所有情况,如:当某一通道所连接到的一个或多个系统不为世界其它地区所知时,则无法处理(例如,专用 TCP/IP 网上的内部机器)。该通道上的系统地址对于网站外的远程系统而言可能是非法的。如果您想回复这些地址,其中必须含源路由信息,以此通告远程系统使用本地机器路由邮件。如此,本地的机器才能(自动)将邮件传递到这些机器。

关键字 exproute(“explicit routing”之缩写)用于通告 MTA 相关的通道(在其地址被传送到远程系统时)需要显式路由。如果某通道上指定了该关键字,MTA 就会在所有与该通道匹配的邮件头地址和所有信封 From: 地址中添加含本地系统名称(或本地系统目前使用之别名)的信息。默认关键字 noexproute,则可指定不在其中添加路由信息。

选项 EXPROUTE_FORWARD 可用来将 exproute 之操作限制为“反向指向地址”(backward-pointing addresse)。当 MTA 通过某通道与之连接的系统不能自身执行正确的路由时,则会出现另一种情形。在这种情况中,与其它通道相关的所有地址都需有明确的路由,特别是当邮件中使用了这些地址,而发送通道与不能执行路由的系统相连接的时候,尤其如此。

隐式路由和关键字 improute 可用来为这种情况解围。MTA 知道所有与其它通道匹配的地址,在其被用于发送至标有 improute 的通道时需要进行路由选择。默认关键字 noimproute 用于指定不在通过特定通道外发的邮件地址中添加路由信息。选项 IMPROUTE_FORWARD 可用来将 improute 之操作限制为“反向指向地址”。

关键字 exprouteimproute 应尽量少使用。因为着两个关键字会使地址变长,使之更复杂,而且可能会逾越其它系统使用的智能路由方案。显式和隐式路由不应与指定的路由相混淆。指定路由用于将重写规则中的路由信息插入到地址。这乃是通过特殊的 A@B@C 重写规则模板启用的。

当指定路由被启用时,它将应用于所有地址,邮件头和信封无一例外。指定路由是由特定重写规则启用的,因此通常独立于目前在用的通道。而显式和隐式路由则是在每条通道的基础上加以控制,所插入的路由地址也总是本地系统的地址。


禁用显式路由地址重写

关键字: routelocal

通道关键字 routelocal 可使 MTA 在通道上重写地址时以“短路”方式中断地址中的任何显式路由。显式路由(使用 !、%,或 @ 字符)现已得以简化。

若在“内部”通道(如内部 TCP/IP 通道)上使用该关键字,则可用较简单的方式配置 SMTP 转节阻塞功能。

请注意,此关键字不要应在要求有显式 % 或其它路由的通道上使用。


邮件出队时的地址重写

关键字: connectalias, connectcanonical

MTA 通常在将邮件排列到其通道队列时对地址进行重写。而邮件出队时则没有任何重写操作。这就可能会在主机名称更换时,而通道队列还有仍送往旧名称的邮件时,带来潜在的问题。

关键字 connectalias 可指示 MTA 将邮件发送至收件人地址中列出的任何主机。这是默认关键字。关键字 connectcanonical 可指示 MTA 连接到应该与之连接的那个系统的主机别名。


指定更正不完全地址时应使用的主机名

关键字: remotehost, noremotehost, defaulthost, nodefaulthost

MTA 常常会收到一些因邮件程序和 SMTP 客户程序配置不当或不符合标准而在其中没有域名的地址。在出现这种情况时,MTA 会在允许其通过之前,尝试使这种地址合法。其具体做法是:MTA 将在地址中附加一个域名(例如,将 @siroe.com 附加到 mrochek)。

对于缺失域名的信封 To: 地址,永远假定应附加本地主机名称。然而对于其它地址(如 From: 地址),在使用 MTA SMTP 服务器的情况下,则至少有两个可选择的域名,即本地 MTA 主机名和客户 SMTP 报告的远程主机名。或在某些情况下,可能还有第三个可用的选择,即在通过该通道入站的邮件上添加一个特定的域名。由于前两个选择的操作都会在一定频率上出现,所以看上去似乎都是正确的。在处理配置不当的 SMTP 客户程序时,最好使用远程主机的域名。而在处理轻型远程邮件客户程序(如使用 SMTP 传递邮件的 POP 或 IMAP 客户程序),则最好使用本地主机的域名。或如果是 POP 或 IMAP 等轻型远程邮件客户程序,则客户程序应该有其各自的特定域名,即非本地主机域名者。在此种情况下,最好添加特定的其它域名。MTA 能做到的是允许按通道进行选择。

通道关键字 noremotehost 可指定系统使用本地知己名。关键字 noremotehost 为默认值。

通道关键字 defaulthost 用于指定需添加在入站基本用户 id 中的特定主机名。其后必须跟有主机名,用以完成进入该通道的地址(在信封 From: 和邮件头中)。(如果是提交通道,defaulthost 关键字的第一个参数也会影响基本信封 To: 地址。)供选用的第二个域名(至少有一个英文句号者)可被指定用来完成信封 To: 的地址。而 nodefaulthost 是默认值。

正如前面“来件的备用通道(转换通道)” 所描述的那样,关键字 switchchannel 可用来将入站 SMTP 连接与某一特定通道相关联。这一工具可用来在某一通道上把远程邮件客户程序分成组,以便给予适当的处理。另一种方法是:统一部署符合标准的远程邮件客户程序(即使在使用多种不兼容的客户程序情况下),而不是试图在您的 MTA 主机上更正网络上的问题;相比之下,前者更为简单。


使收件人标题行的邮件合法化

关键字: missingrecipientpolicy

RFC 822 要求(因特网)邮件必须含收件人标题行,即 To:Cc:Bcc: 标题行。没有此类标题行的邮件是非法的。但是,有些老掉牙的用户代理程序和邮件程序(例如许多旧版本的 sendmail 程序)仍会吐出一些非法邮件。

关键字 missingrecipientpolicy 可用一整数值指定使用这种邮件的方法;如果没有明确的关键字在用,默认值则为 0,其意思是将信封 To: 的地址放入 To: 邮件头中。

表 8-8 missingrecipientpolicy 的值


操作

0

将信封上的 To: 收件人放入 To: 标题行。

1

在不做任何改变的情况下传送非法邮件。

2

将信封上的 To: 收件人放入 To: 标题行。

3

将所有信封 To: 收件人放入一个 Bcc: 标题行中。

4

生成一个组结构(例如:;)To: 标题行,未指定 To: 收件人者。

5

生成一空白的 Bcc: 标题行。

6

拒收邮件。

请注意,选项 MISSING_RECIPIENT_POLICY 可用于设置这种行为的 MTA 系统默认值。初始的 Messaging Server 配置应将 MISSING_RECIPIENT_POLICY 设置为 1。


去除非法的空白收件人报头

关键字: dropblank, nodropblank

在 RFC 822(因特网)邮件中,任何 To:Resent-To:Cc:Resent-Cc: 报头或邮件头都需含至少一个地址,这种报头不能为空值。尽管如此,有的邮件程序还是会发放出此类非法报头或邮件头。通道关键字 dropblank 如果被指定于某源通道,则可使 MTA 从入站邮件中去除任何此种非法的空白报头。


启用针对具体通道的反向数据库的使用

关键字: reverse, noreverse

关键字 reverse 可指示 MTA 按照地址反向数据库或 REVERSE 映射(如果二者之一有一个存在的话)检查并可能修改排列在通道中的邮件的地址。关键字 noreverse 则可免除对排列在通道中的邮件的地址进行地址反向处理。关键字 reverse 为默认值。有关详细说明,请参见“将内部格式地址转换为公共格式地址”


启用受限邮箱编码

关键字: restricted, unrestricted

有些邮件系统难于处理 RFC 822 允许的全长地址时。比较常见的例子是基于 sendmail 的邮件程序,特别是当其配置文件设置有误的情况下,尤其如此。引用的本地部分(或邮箱规范)是常见的麻烦来源:

"smith, ned"@siroe.com

这一问题变得如此严重,以至 RFC 1137 不得不制订相应的方法以迂回方式解决这一问题。基本方法是从地址中移除引用,然后通过翻译将需引用的字符映射成为 atom(组合单位)允许的字符(有关此处使用的 atom 一词的定义,请见 RFC 822)。例如,全面的地址可能变成:

smith#m#_ned@siroe.com

通道关键字 restricted 可告知 MTA 与该通道连接的邮件系统需要这种编码。当邮件写入通道时,MTA 便可在报头和信封地址两处,对引用的本地部分进行编码处理。通道上的入站地址可自动解码。关键字 unrestricted 可指示 MTA 不进行 RFC 1137 编码和解码。关键字 unrestricted 是默认设置。


备注: 对于不能接受引用的本地部分的系统,当有通道与之连接时,则应使用关键字 restricted。但不应该应用于可实际生成援引本地地址部分的通道。(这种情况假定凡能生成这种地址的通道,也能处理这种这种地址。)




生成 Return-path: 标题行

关键字: addreturnpath, noaddreturnpath

在通常情况下,添加 Return-path: 标题行是执行最终传递通道的作业项。但对某些通道而言(如 ims-ms 通道),由 MTA 添加 Return-path: 报头的效率比允许通道添加之作业法更好。关键字 addreturnpath 可使 MTA 在邮件于该通道入队时添加 Return-path: 报头。


从信封的 To: 和 From: 地址构建 Received: 标题行

关键字: receivedfor, noreceivedfor, receivedfrom, noreceivedfrom

关键字 receivedfor 可指示 MTA:如果某邮件只定址给一个信封收件人,则将该信封的 To: 地址包括在构建的 Received: 标题行中。关键字 receivedfor 为默认值。关键字 noreceivedfor 将指示 MTA 构建 Received:标题行,但不包括任何信封地址信息。

关键字 receivedfrom 用于指示 MTA:如果 MTA 由于某种邮件发送列表的扩展(举例)而更改了信封 From: 地址,则在构建入站邮件的 Received: 标题行时包括原信封的 From: 地址。receivedfrom 是默认设置。关键字 noreceivedfor 将指示 MTA 构建 Received:标题行,但不包括原信封的 From: 地址。


处理地址 标题行中的注释

关键字: commentinc, commentmap commentomit, commentstrip, commenttotal, sourcecommentinc, sourcecommentmap, sourcecommentomit, sourcecommentstrip, sourcecommenttotal

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 标志,原注释则由特定的文本(应包括括号)予以替换。


处理地址标题行中的人名

关键字: personalinc, personalmap, personalomit, personalstrip, sourcepersonalinc, sourcepersonalmap, sourcepersonalomit, sourcepersonalstrip

在重写过程中,所有含地址的注册标题行必须在分析后重写,并去除短格式地址,或将其转换为合法地址。在此过程中,系统将在重新构建标题行时抽取并可能修改或排除人名(即用尖括号分割的地址前面的字串)。

对这一系统行为的控制,可通过使用关键字 personalincpersonalmappersonalomitpersonalstrip 加以实现。关键字 personalinc 可指示 MTA 保留报头中的人名。这是默认值。关键字 personalomit 用于指示 MTA 移除所有人名。关键字 personalstrip 用于指示 MTA 从所有人名字段中去除任何非基本单元之字符。关键字 personalmap 用于指示 MTA 通过 PERSONAL_NAMES 映射表运行人名。

在源通道上时,对这种系统行为的控制可通过下列关键字的使用加以实现:sourcepersonalincsourcepersonalmapsourcepersonalomitsourcepersonalstrip。关键字 sourcepersonalinc 可指示 MTA 保留报头中的人名。这是默认值。关键字 sourcepersonalomit 用于指示 MTA 移除所有人名。最后,关键字 sourcepersonalstrip 用于指示 MTA 从所有人名字段中去除任何非基本单元之字符。关键字 sourcepersonalmap 用于指示 MTA 通过源通道运行人名。

这些关键字可应用于任何通道。

PERSONAL_NAMES 映射表探查句的语法为:

personal_name | address

如果模板设定有 $Y 标志,原来的人名则以特定文本替换。


指定别名文件和别名数据库探查项

关键字: aliaslocal

在一般情况下,只有被重写到本地通道(即 UNIX 上的通道 1)的地址可在别名文件和别名数据库中查找。关键字 aliaslocal 可被放置在某一通道上,以使被重写到该通道的地址也可在别名文件和别名数据库中查找。查找所造之探查句的具体格式由 ALIAS_DOMAINS 选项控制。


子地址的处理

关键字: subaddressexact, subaddressrelaxed, subaddresswild

作为有关子地址的概念的背景资料,本地和 ims-ms 通道需特别解释地址(邮箱部分)的本地部分中的 + 字符:在格式为 name+subaddress@domain 的地址中,MTA 将 + 字符后面的邮箱部分视为子地址。本地通道把子地址当作附加的修饰信息加以处理,并在不考虑子地址的情况下将其传递到帐户名;ims-ms 通道则将子地址解释为文件夹名,即需将其传递到的文件夹。

子地址还对下列各项有影响:按本地通道查找的别名(即 UNIX 上的 L 通道)、按标记有 aliaslocal 关键字之任何通道查找的别名,以及按目录通道查找的邮箱。对以此种方式匹配的子地址的具体处理,其方法是可以配置的:当对照一个条目比较子地址时,MTA 总是先检查包括全字匹配的子地址的整个邮箱;另外,MTA 是否在此后需进行其它或额外检查,这也是可以配置的。

关键字 subaddressexact 用于指示 MTA 在匹配条目期间不进行特殊的子地址处理;整个邮箱(包括子地址)必须与一条目匹配,以使别名被视为与之匹配。系统将不进行额外的比较(特别是不进行通配符的比较或子地址已被移除项的比较)。关键字 subaddresswild 将指示 MTA 在寻找包括整个子地址在内的精确匹配项后,MTA 下一步应寻找格式为名称 +* 的条目。关键字 subaddressrelaxed 用于指示 MTA 在寻找精确匹配以及与之匹配的格式为名+* 的项目后,MTA 应只对名称部分的匹配情况再次检查。使用关键字 subaddressrelaxed 时,具下列格式的别名条目可匹配于名称或名称 + 子地址,从而将原名转换为新名称,并将名称 + 子地址转换为新名称 + 子地址。关键字 subaddressrelaxed 为默认值。

name: newname+*

因此,关键字 subaddresswild 或关键字 subaddressrelaxed 可在别名或目录通道被占用但用户想接收用任意子地址定址的邮件时使用。这些关键字免除了为一个地址上的每一单个子地址变体提供分开的条目之必要。

需注意的一点是,这些关键字只对本地通道(即 UNIX 上的 L 通道)和目录通道,或任何有 aliaslocal 关键字标记的通道有意义。

标准的 Messaging Server 配置只转接到真正有 subaddressrelaxed 行为的 L 通道(当其它关键字没有明确使用时,此乃默认关键字)。


启用具体通道的重写规则检查

关键字: rules, norules

关键字 rules 用于指示 MTA 强制对该通道的重写规则进行检查。这是默认值。关键字 norules 用于指示 MTA 不检查该通道。这两个关键通常在调试时使用,很少在实际应用中使用。


移除源路由

关键字: dequeue_removeroute

关键字 dequeue_removeroute 可用来在邮件出队时从信封 To: 地址中移除源路由。该关键字目前只能在 tcp-* 通道上执行。当把邮件传送到不能正确处理源路由的系统时,可用此关键字。


指定必须来自别名的地址

关键字: viaaliasoptional, viaaliasrequired

viaaliasrequired 可指定:与通道匹配的最终收件人地址必须由一别名生成。最终收件人地址是指进行别名扩展后(如果相关的话)的匹配项。该地址不能作为收件人地址直接交与 MTA;也就是说,只将地址重写到通道是不够的。在重写至通道后,地址还需通过别名扩展,然后才能被视为真正与通道匹配。

例如,关键字 viaaliasrequired 可在一本地通道上使用,以防止被传送到任意帐户(如 UNIX 系统上的任意本地 Berkeley 邮箱)。

默认关键字为 viaaliasoptional,这意味系统并不要求与通道匹配的最终收件人地址一定要从一别名而生。


配置邮件头处理功能



本节将就处理邮件头或报头以及信封信息的关键字加以说明。这一部分由下列分节组成:


重写嵌入邮件头

关键字: noinner, inner

标题行的内容只在必要时才予以解释。然而,由于 MIME 邮件能在邮件中嵌入邮件(message/RFC822),故可含多套邮件头。MTA 通常只解释和重写邮件头的最外围的部分。也可通过选择指示 MTA 对邮件内的内部邮件头同样应用邮件头重写。

此项操作可通过使用 noinnerinner 两个关键字得以控制。关键字 noinner 可指示 MTA 不重写邮件内的标题行。这是默认值。关键字 inner 可指示 MTA 对邮件语法进行分析并重写邮件内的邮件头。这些关键字可应用于任何通道。


移除选定的邮件标题行

关键字: headertrim, noheadertrim, headerread, noheaderread, innertrim noinnertrim

MTA 可提供针对每一通道的工具,用以修剪或移除所选邮件的标题行。这项操作可通过通道关键字与相关的一个或两个报头选项文件之结合而实现。关键字 headertrim 可指示 MTA 在对原邮件头进行处理后,先查找与通道相关的邮件头选项文件,然后对排列在该目的地通道中的邮件之报头进行相应的修剪。关键字 noheadertrim 可免除对邮件头的修剪。关键字 noheadertrim 是默认值设置。

关键字 innertrim 用于指示 MTA 同时在里面的邮件部分进行邮件头修剪,即嵌入的 MESSAGE/RFC822 部分。默认关键字 noinnertrim 可用于指示 MTA 不对里面的邮件部分进行邮件头修剪。

关键字 headerread 可指示 MTA 在对原邮件头进行处理前,先查找与通道相关的邮件头选项文件,然后对排列在该源通道中的邮件之报头进行相应的修剪。请注意,headertrim 邮件头的修剪却是在邮件处理后应用的,而且是目的地通道,而非源通道。关键字 noheaderread 可免除入队邮件报头修剪。noheaderread 是默认关键字。

与关键字 headeromitheaderbottom 不同的是,关键字 headertrimheaderread 可应用于任何通道。然而须注意的情况是,从邮件中去除重要的报头信息可能会使 MTA 出现不正常的操作。因此在选择需移除或限制的报头时,须务必谨慎为佳。之所以要提供这种工具,是因为被选取的标题行有时必须移除或通过其它方式加以限制。


注意:

从邮件中去除报头信息可能会使 MTA 出现不正常的操作。因此在选择需移除或限制的报头时,须谨慎为佳。之所以要提供这 ie 关键字,是因为被选取的标题行有时必须移除或加以限制。在修剪或移除任何标题行之前,您必须理解标题行的用途,并考虑到移除后可能带来的影响。



关键字 headertriminnertrim 的报头选项文件所具有的名称呈 channel_headers.opt 格式加上通道,即报头选项文件与之相关的通道名称。同样,关键字 headerread 所具有的名称呈 channel_read_headers.opt 格式。这些文件储存于 MTA 配置目录:server_root/msg-instance/imta/config/


生成/移除 X-Envelope-to: 标题行

关键字: x_env_to, nox_env_to

关键字 x_env_tonox_env_to 用于控制在排列于具体通道中的邮件副本上生成或抑制 X-Envelope-to 标题行。在标记有 single 关键字的通道上,关键字 x_env_to 可启用这些报头的生成,而 nox_env_to 则可从入队的邮件中移除此类报头。默认关键字是 nox_env_to

关键字 x_env_to 还需要有 single 关键字与之一起使用才能起作用。


将日期转换为二或四位数

关键字: datefour, datetwo

原有的 RFC 822 规范要求邮件头中的日期字段应为两位数年份。后来出版的 RFC 1123 将日期格式改为四位数,然而,有些老邮件系统却无法接受四位数日期。更麻烦的是,较新的邮件系统又不能忍受两位数的日期。


备注: 凡是不能处理这两种日期格式的系统,都属违反标准。



关键字 datefourdatetwo 可用来控制 MTA 在处理邮件头中的年份字段的方法。默认的关键字 datefour 可指示 MTA 将所有年份字段扩展为四位数。系统将在小于 50 的两位数日期值中添加 2000,而在大于 50 的值中添加 1900。


注意:

关键字 datetwo 可指示 MTA 从四位数日期中删除前面的两位数。这是为需要使用两位数日期的不符合标准的邮件系统提供兼容性;但决不应用于任何其它目的。




指定日期中的星期

关键字: dayofweek, nodayofweek

RFC 822 规范允许在邮件头的日期字段中存在主要的星期格式。然而,有些系统则不能接受有关星期的信息。致使某些系统不愿将星期信息包括在内,即使在邮件头中包括这样的信息很有用处。

关键字 dayofweeknodayofweek 可控制 MTA 处理星期信息的方式。默认关键字 dayofweek 可用来指示 MTA 保留任何星期信息,并在缺失的情况下将其添加到日期和时间报头中。


注意:

关键字 nodayofweek 可指示 MTA 从日期和时间报头中移除任何主要的星期信息。这是为不能处理星期信息的不符合标准的邮件系统提供的一种兼容方式;但决不应用于任何其它目的。




自动分割长标题行

关键字: maxheaderaddrs, maxheaderchars

有些邮件传递程序,特别是有些 sendmail 系统,不能妥善地处理长标题行。其结果往往不仅是使报头损坏,而且会误使邮件遭到拒绝。虽然这种操作严重违反了标准,但却是一个较常见的问题。

MTA 提供的、针对具体通道的工具可将长标题行分割(拆开)成多个独立的标题行。关键字 maxheaderaddrs 用于控制一行上可以显示多少个地址。关键字 maxheaderchars 用于控制一行上可以显示多少个字符。这两个关键字都需要一个单一的整数参数,用以指定相关的限制。默认设置是:不限制标题行的长度,也不限制显示的地址数量。


报头对齐和折行

关键字: headerlabelalign, headerlinelength

关键字 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: 报头的邮件被视为正常邮件,即最低的阅读权限。邮件阅读权限高于由此关键字指定之限制者,将在其于通道入队之时予以拒收,并拌以下列出错讯息:

message too sensitive for one or more paths used

请注意,MTA 的这种阅读权限检查是根据每封邮件的情况,而不是在每个收件人级上进行的:即如果一个收件人的目的地通道没有通过阅读权限检查,则所有收件人的邮件都将被退回,而不是只退回与此阅读权限通道相关的收件人的邮件。


设置报头的默认语言

关键字: language

报头中的编码文字可以为某种特定语言。关键字 language 可指定所需的默认语言。


附件与 MIME 处理



本节将就附件和 MIME 处理所需使用的关键字加以说明。这一部分由下列分节组成:


忽略 Encoding:标题行

关键字: ignoreencoding, interpretencoding

MTA 可用 Yes CHARSET-CONVERSION 将各种非标准的邮件格式转换为 MIME。特别是 RFC 1154 格式,因为这种格式使用了一种非标准的 Encoding: 标题行。然而,有些网关会在这种标题行上传送一些不正确的信息,其结果是有时最好忽略这种标题行。关键字 ignoreencoding 可用来指示 MTA 忽略任何 Encoding: 标题行。


备注: 除非 MTA 启用了 CHARSET-CONVERSION,否则这种报头在任何情况下都予以忽略。关键字 interpretencoding 可用来指示 MTA 严加注意任何有 Encoding: 的标题行(如果是通过其它方式如此配置的话);该关键字是默认设置。




自动重组邮件/部分邮件

关键字: defragment, nodefragment

MIME 标准规定了可将邮件分成几个小部分的邮件/部分内容类型。这一规定的用处在于:当邮件需在有大小限制的网络上传输时,或在不可靠的网络上传输时邮件分段可被“检查点”阻挡,从而使邮件在传输期间因网络故障而无法随后进行全面复制还原。这一标准规定了邮件每一部分中应包括的信息,以便邮件可在抵达目的地后自动重新组装。

通道关键字 defragment 和重组通道为在 MTA 中重新组装邮件提供了有效的手段。当某通道被标记为 defragment 时,通道中排列的任何部分邮件都将被转到重组通道队列。待所有“部分”抵达后,系统将重建邮件,然后发送出去。关键字 nodefragment 用于关闭此特殊处理功能。关键字 nodefragment 为默认值。


大型邮件自动拆分

关键字: maxblocks, maxlines

有些电子邮件系统或网络传输装置不能处理超过一定大小限制的邮件。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-block 报头处理,如果邮件的大小是 5 个信息块或更少,则不予以拆分。就邮件大小极限而言,0 值会使报头有效地得以忽略。

该值为 1 时,系统则允许邮件头使用所有可用的量。每一拆分的部分至少要有一行,不论其是否超过极限。MAX_HEADER_LINE_USE 在与关键字 maxlines 一起使用时,其作业方法与此相同。


实施邮件行长度限制

关键字: linelength

SMTP 规范允许文本行数可含 1000 字节。然而,有些传输装置则可对行长度实施严格的限制。关键字 linelength 提供的机制可用来以通道为基础限制最大允许的邮件行长度。如果在特定通道入队的邮件,其长度超过了为该通道指定的极限,系统则自动对其进行编码处理。

MTA 中可用的各种编码功能总能将行长度降至少于 80 个字符。原邮件可在经过这种编码后得以还原,方法是:应用适当的解码过滤器。


备注: 编码功能只能将行长度减至不多于 80 个字符。小于 80 的行长度值规范可能不会真正地生成符合所述限制的行长。



关键字 linelength 可使数据的编码作业为传输目的而进行“软”折行。编码通常在接收端解码,以便恢复原来的“长”行。有关“硬”折行的说明,请见“Record, text”CHARSET-CONVERSION。


邮件大小限制、用户定额和特权



本节说明设定邮件大小限制、用户定额和特权所需使用的关键字。这一部分由下列分节组成:


指定邮件的绝对大小极限

关键字: blocklimit, noblocklimit, linelimit, nolinelimit, sourceblocklimit

虽然拆分可自动将邮件分成小块,但在有些情况下,较为适宜的做法是拒收那些超过管理部门界定之极限的邮件(例如,为了防止因蓄意的攻击而出现拒绝服务现象)。

关键字 blocklimitlinelimitsourceblocklimit 用于实施绝对大小限制。这几个关键字后面都需跟有单一的整数值。

关键字 blocklimit 用于指定邮件中允许的最大信息块数量。对于信息块数量超过此限量的邮件,MTA 将拒绝把其排入通道的尝试。MTA 的一个信息快通常为 1024 字节;这一数量可用 MTA 选项文件中的 BLOCK_SIZE 选项进行变换。

关键字 sourceblocklimit 用于指定入站邮件中允许的最大信息块数量。对于信息块数量超过此限量的邮件,MTA 将拒绝把其提交到通道的尝试。换言之,blocklimit 适用于目的地通道;sourceblocklimit 适用于源通道。MTA 的一个信息快通常为 1024 字节;这一数量可用 MTA 选项文件中的 BLOCK_SIZE 选项进行变换。

关键字 linelimit 用于指定邮件中允许的最多行数。对于行数超过此限量的邮件,MTA 将拒绝把其排入通道的尝试。必要时,关键字 blocklimitlinelimit 可同时施加。

MTA 选项 LINE_LIMITBLOCK_LIMIT 可在所有通道上实施类似的限制。这些极限的好处是它们可在所有通道上使用。因此,MTA 服务器可在获得邮件收件人信息之前,使邮件客户程序对此有所准备。对于某些通信协议而言,这种限制简化了邮件拒收过程。

通道关键字 nolinelimitnoblocklimit 都是默认值,这意味着除了通过 LINE_LIMITBLOCK_LIMIT MTA 选项施加的任何全局限制外,没有其它限制。


处理超定额用户的邮件传递

关键字: holdexquota, noexquota

关键字 noexquotaholdexquota 可用来控制如何处理传送给 Berkeley 邮箱用户(UNIX)的邮件,即用户传递到 uid 本地通道,但用户超过了他们的磁盘定额。

noexquota 可指示 MTA 将传送给超定额用户的邮件退回给邮件的发件人。holdexquota 则指示 MTA 暂时保留传送给超定额用户的邮件;这类邮件将保留在 MTA 队列中,直至被传递或超时为止,然后通过邮件退回作业将其退回给发件人。


在 MTA 队列 中创建文件



本节描述您可用之控制磁盘资源的关键字,具体方法是在 MTA 队列中指定需创建的文件。这一部分由下列分节组成:


控制如何处理邮件上的多地址

关键字: multiple, addrsperfile, single, single_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


配置日志记录和调试



本节说明关键字 logging 和 debugging。


日志记录关键字

关键字: logging, nologging

MTA 提供的工具可记录入队和出队的每一封邮件的情况。关键字 loggingnologging 可针对每个通道控制邮件的日志记录。在默认状态下,初始配置将打开所有通道的日志记录功能。在通道定义中替换成 nologging 关键字可禁用某个特定通道的日志记录功能。

有关日志记录的详细说明,请见第 13 篇 “日志记录和日志分析”


关键字 Debugging

关键字: master_debug, slave_debug, nomaster_debug, noslave_debug

一些通道程序包含有可选代码,以便产生附加的诊断输出来协助调试。有两个通道关键字可用来启用产生针对每一个通道的调试输出。这两个关键字是:在主程序中启用调试输出的 master_debug 和在从属程序中启用调试输出的 slave_debug。默认状态下,两类调试输出都被禁用,相应关键字为 nomaster_debugnoslave_debug

启用后,调试输出将出现在与通道程序相关的日志文件中。日志文件的位置因程序而异。日志文件通常保存在日志目录中。主程序日志文件名的形式通常为 x_master.log,此处的 x 为通道名。从属程序日志文件名的形式通常为 x_slave.log

在 UNIX 中,当 master_debugslave_debug 启用用于 l 通道时,用户随后会在含 MTA 调试信息的当前目录中收到 imta_sendmail.log-uniqueid 文件(如果他们有写入该目录的权限的话;否则调试输出转到 stdout)。


设置循环检查

关键字: loopcheck, noloopcheck

关键字 loopcheck 可将字串放置在 SMTP EHLO 应答标志区,以便 MTA 检查其自身是否在与之通信。当设定了 loopcheck 时,SMTP 服务器将以 XLOOP 扩展文件出面。

当它与支持 XLOOP 的 SMTP 服务器通信时,MTA 的 SMTP 客户程序将用其 MTA 值比较显示的字串,并在客户程序与 SMTP 服务器实际通信之时立即退回邮件。


其它关键字



本节描述其它关键字的使用方法。这一部分由下列分节组成:


通道操作类型

关键字: submitsubmit

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 是默认设置,它意味着用户邮箱过滤器没有为该通道而启用。

关键字 sourcefilter 和 destinationfilter 可用来在一般的 MTA 通道上指定通道级过滤器,以分别应用于入站和出站邮件。这些关键字需使用 URL 参数描述通道过滤器文件的位置。nosourcefilter 和 nodestinationfilter 是默认设置,它意味着没有为通道的任何后一个方向启用通道邮箱过滤器。

已废弃的关键字 channelfilter 和 nochannelfilter 分别与 destinationfilter 和 nodestinationfilter 同义。

目前只支持 ims-ms 通道的关键字 fileinto 用于指定施加了邮箱过滤器的 fileinto 算符后如何改变地址。对于 ims-ms 通道而言,通常的用法为:

fileinto $U+$S@$D

上述例子指定:文件夹名称应作为子地址插入到原地址,以此替换任何原有的子地址。


上一页    目录    索引    下一页
(c) 2002 年 Sun Microsystems, Inc. 版权所有。

更新日期:2002 年 2 月 27 日