- 论坛徽章:
- 0
|
iPlanet Messaging Server 5.2 管理员指南
设置通道的方向性 \r\n\r\n关键字: master, slave, bidirectional \r\n\r\n可用三个关键字指定某通道是用主程序提供服务(master)还是用从属程序(slave)提供服务,或由两个程序(bidirectional)同时提供服务。如果没有指定任何关键字,则为 bidirectional。这些关键字可在邮件于通道中排队期间决定 MTA 是否启动传递操作。 \r\n\r\n这些关键字的使用反映了相关通道程序的某些基本特点。针对 MTA 支持的各种通道的说明,可表明这些关键字应在何时何处使用。 \r\n\r\n\r\n\r\n执行延迟传递日期 \r\n\r\n关键字: deferred, nodeferred \r\n\r\n通道关键字 deferred 可识别并执行 Deferred-delivery: 标题行。标有 deferred 传递日期(将来日期)的邮件将保留在通道队列中,直到其过期退回或到了延迟传递日期时为止。有关 Deferred-delivery: 标题行的格式和使用方面的详细信息,请参见 RFC 1327。 \r\n\r\n关键字 nodeferred 为默认值。需说明的一点是,虽然 RFC 1327 有规定一定要支持延迟邮件处理功能,但执行时实际上是让用户把邮件系统作为其磁盘配额的扩展而使用。 \r\n\r\n\r\n\r\n指定无法传递邮件的重新传递频率 \r\n\r\n关键字: backoff, nonurgentbackoff, normalbackoff, urgentbackoff, notices \r\n\r\n系统设置是:对于有传递失败情况的邮件,重新传递的频率取决于邮件的优先级别。以下是尝试传递之间的默认时间间隔(分)。优先级别后面的第一个数表示初次传递失败后第一次尝试重新传递的分钟数: \r\n\r\nurgent: 30, 60, 60, 120, 120, 120, 240\r\nnormal: 60, 120, 120, 240, 240, 240, 480\r\nnonurgent: 120, 240, 240, 480, 480, 480, 960 \r\n\r\n如果是紧急邮件,则在初次传递失败 30 分钟后尝试重新传递,第一次重新传递 60 分钟后尝试重新传递,第二次重新传递 60 分钟后尝试重新传递,第三次重新传递 120 分钟后尝试重新传递,等等。指定的最后尝试后的重新传递,以相同的时间间隔重复。因此,如果是紧急邮件,则每隔 240 分钟重新传递一次。 \r\n\r\n传递尝试之持续时间由下列关键字指定:notices、nonurgentnotices、normalnotices 或 urgentnotices。如果无法传递,系统将生成一则无法传递之通知,并将邮件退回给发件人。(有关 notices 关键字的详细说明,请见“设置通知邮件传递间隔”。) \r\n\r\n您可通过“backoff”关键字为不同优先等级的邮件指定自定义的重新传递时间间隔。nonurgentbackoff 用于指定非紧急邮件的重新传递时间间隔。normalbackoff 用于指定正常邮件的重新传递时间间隔。urgentbackoff 用于指定紧急邮件的重新传递时间间隔。如果没有指定这些关键字,backoff 指定的时间间隔则适用于所有邮件,不论优先等级为何。 \r\n\r\n以下为示例: \r\n\r\nurgentbackoff \"pt30m\" \"pt1h\" \"pt2h\" \"pt3h\" \"pt4h\" \"pt5h\" \"pt8h\" \"pt16h\" \r\n\r\n此例中,紧急邮件是在初次传递失败后 30 分钟时尝试重新传递的,随后的重新传递尝试如下:第一次后的一个小时(即初次传递失败后的 1 小时 30 分)、第二次后的两个小时、第三次后的三个小时、第四次后的四个小时、第五次后的五个小时、第六次后的八个小时、第七次后的十六个小时。再往后的重新传递尝试将为每 16 小时一次,直至关键字 notices 指定的时限到期为止。如果无法传递,系统将生成一则“无法传递”之通知,并将邮件退回给发件人。有关时间间隔的语法,请见 ISO 8601P,使用方法说明,请见 iPlanet Messaging Server Reference Manual。 \r\n\r\n在下一个示例中: \r\n\r\nnormalbackoff \"pt30m\" \"pt1h\" \"pt8h\" \"p1d\" \"p2d\" \"p1w\" \r\n\r\n一正常邮件是在初次传递失败后 30 分钟时尝试重新传递的,随后的重新传递尝试如下:第一次后的一个小时、第二次后的八个小时、第三次后的一天、第四次后的两天、第五次后的一星期,然后每星期尝试一次,直至关键字 notices 指定的时限到期为止。如果无法传递,系统将生成一则“无法传递”之通知,并将邮件退回给发件人。 \r\n\r\n在最后的示例中: \r\n\r\nbackoff \"pt30m\" \"pt120m\" \"pt16h\" \"pt36h\" \"p3d\" \r\n\r\n对于所有无法传递的邮件,不论优先级如何,都将在初次传递失败后 30 分钟时尝试重新传递,并在第一次后的两个小时重试,第二次后的十六个小时重试,第三次后的三十六小时重试,第四次后的三天重试,然后每三天重试一次,直至关键字 notices 指定的时限到期为止;除非您用 nonurgentbackoff、normalbackoff 或 urgentbackoff 关键字替换之。如果无法传递,系统将生成一则“无法传递”之通知,并将邮件退回给发件人。 \r\n\r\n\r\n\r\n通道执行任务的处理池 \r\n\r\n关键字: pool \r\n\r\n您可通过配置使不同的通道在同一存储池中运行,以便共享资源。还可能需要配置其他通道使之运行于专用于某特定通道的存储池中。在每一个存储池中,根据邮件的优先级自动将其存储到不同的处理队列中。存储池中高优先级的邮件在低优先级邮件之前得到处理。(请参见“基于大小的邮件优先级”。) \r\n\r\n通过使用关键字 pool,您可在创建任务项的处理池中,以通道对通道为基础选择处理池。关键字 pool 之后必须有当前通道传递任务应使用的存储池的名称。存储池名称不得超过 12 个字符。 \r\n\r\n有关 Job Controller 的工作原理和配置信息,请参见“作业控制器文件”、“作业控制器”和“服务任务限制”。) \r\n\r\n\r\n\r\n服务任务限制 \r\n\r\n关键字: maxjobs, filesperjob \r\n\r\n每当邮件排入通道的队列时,作业控制器可确保有一项传递邮件的作业在运行。这可能涉及到启动新的作业进程、添加线程,或者仅标示出已有一项作业在运行。但是,一个单独服务任务不能够充分保证即时传递所有邮件。有关 Job Controller 的工作原理和配置信息,请参见“作业控制器文件”、“通道执行任务的处理池”和“作业控制器”。) \r\n\r\n对于某给定安装而言,为传递邮件而启动的最大进程数和线程数量应有一个合适的值。最大数量取决于诸如处理器个数、磁盘速度和连接的特性等因素。在 MTA 配置中,可以进行如下的控制: \r\n\r\n\r\n为一给定通道的运行可启动进程的最大数量(通道关键字 maxjobs) \r\n\r\n为一组通道可启动进程的最大数量(任务控制器配置文件的存储池相关部分的 JOB_LIMIT 参数) \r\n\r\n在一新线程或进程启动之前接收的入队邮件个数(通道关键字 threaddepth) \r\n\r\n对于某些通道,在给定的传递程序之中可运行线程的最大数量(通道选项文件中的 max_client_threads 参数)。 \r\n\r\n为一给定通道的运行可启动进程的最大数量应是下面两个值中的较小者:为通道设置的 maxjobs 和为通道运行所用存储池设置的 JOB_LIMIT。 \r\n假设某邮件需要处理。通常,任务控制器按如下所述那样启动新进程: \r\n\r\n\r\n如果没有为一通道运行的进程并且还没有达到存储池的任务限制,任务控制器启动一新进程。 \r\n\r\n如果通道程序是单线程的或已达到线程限制,待处理邮件的增长超过线程数的倍数(由 threaddepth 指定)时且通道和存储池任务限制都未达到,那么任务控制器启动一新进程。 \r\n\r\n如果通道程序是多线程的并且还没有达到线程限制,且待处理邮件的增长超过 threaddepth 的倍数时,启动一新线程。 \r\n\r\n特别是对于 SMTP 通道,当邮件排入不同主机的队列中时即启动新线程或新进程。因此,对于 SMTP 通道,任务控制器是按如下所述方式启动新进程的。假定有一邮件需要处理: \r\n\r\n如果没有为 SMTP 通道运行的进程并且没有达到存储池限制时,任务控制器启动新进程。 \r\n\r\n如果已经达到线程限制(MAX_CLIENT_THREADS),排入主机队列的一邮件没有得到服务,并且通道限制(maxjobs)和存储池任务限制(JOB_LIMIT)都没有达到时,则启动一新进程。 \r\n\r\n如果还没有达到线程限制,排入主机队列的一邮件还没有得到服务时,启动一新线程。 \r\n\r\n如果还没有达到线程限制,并且由于邮件排入队列使主机待处理邮件增长超过 threaddepth 的倍数时,启动一新进程。 \r\n\r\n还可参阅“SMTP 通道线程”。 \r\n关键字 filesperjob 可用于使 MTA 创建额外的服务任务。此关键字以一单个正整数为参数,用于指定在创建多于一个的服务任务来处理队列条目之前,必须有多少个队列条目(也就是文件)被发送到相关的通道之中。如果给出的参数值小于或等于零,则被解释为只请求一个队列服务任务。没有指定关键字等同于将关键字的值指定为零。应充分重视此关键字的效果;计算出的数值越大,可实际创建的服务任务的个数就越多。 \r\n\r\n关键字 filesperjob 用给定值去除实际队列条目(即文件)的个数。注意,源于一给定邮件的队列条目的个数受很多因素的影响,包括(但不限于)关键字 single 和 single_sys 的使用以及邮件列表中邮件头修改操作的规定等。 \r\n\r\n关键字 maxjobs 设置能够同时运行的服务任务个数总和的上限。该关键字后必须跟有一个整数值,如果计算出的服务任务个数大于此值,则实际仅创建 maxjobs 个任务。如果没有指定 maxjobs,此值的默认值为为 100。通常 maxjobs 设置为小于或等于能同时运行在通道所使用的任何服务存储池或存储池组中的任务合计数。 \r\n\r\n\r\n\r\n基于大小的邮件优先级 \r\n\r\n关键字: urgentblocklimit, normalblocklimit, nonurgentblocklimit \r\n\r\n关键字 urgentblocklimit、normalblocklimit 和 nonurgentblocklimit 可用于指示 MTA 基于大小降低邮件的优先级。这些关键字影响处理邮件时任务控制器所应用的优先级。 \r\n\r\n\r\n\r\nSMTP 通道线程 \r\n\r\n关键字: threaddepth, \r\n\r\n多线程 SMTP 客户程序把发送到不同目的地的邮件分发到不同线程中。关键字 threaddepth 可用于指示多线程 SMTP 客户程序在任意一线程中只处理规定数目的邮件,甚至对于所有发向同一目的地的邮件(正常情况下在一个线程中处理)也使用额外的线程。 \r\n\r\n若与通道相连接的 SMTP 服务器能处理多个并发连接,使用 threaddepth 可能对在一守护程序路由器 TCP/IP 通道 - 一种与单个指定 SMTP 服务器连接的 TCP/IP 通道 - 上实现多线程特别有用。 \r\n\r\n每当通道待处理邮件的增长超过 threaddepth 的倍数时,任务控制器试图增加专用于处理该通道队列中的邮件的进程总数。对于多线程通道,任务控制器建议任何处理该通道邮件的进程启动新线程,或当所有任务都有该通道所允许的最大线程数(tcp_* 通道选项中的 MAX_CLIENT_THREADS)时启动新进程。对于单线程通道将启动新进程。注意,当达到通道限任务制(maxjobs)或存储池任务限制(JOB_LIMIT)时,任务控制器将不再启动新任务。 \r\n\r\n\r\n\r\n多地址扩展 \r\n\r\n关键字: expandlimit, expandchannel, holdlimit \r\n\r\n大多数通道在传输每一个入站邮件时都支持指定多个收件人地址。在单个邮件中指定多个收件人地址有可能导致邮件传输处理的延迟(联机延迟)。如果延迟时间太长,可能会发生网络超时,这又可能导致反复尝试邮件提交和其他的问题。 \r\n\r\nMTA 提供了一个特别的功能,当为单个邮件指定了超过给定数目的地址时,将该邮件强制为延迟(离线)处理。延迟处理能够降低大量的联机延迟。注意,额外的开销也只是被延迟了,而没有完全避免。 \r\n\r\n该功能需要在一定的组合下才能激活,例如,一般为 reprocessing 通道和 expandlimit 关键字。关键字 expandlimit 取一个整数参数,以指定在延迟处理之前可接受多少来自通道的邮件中的地址。如果没有指定 expandlimit 关键字,默认值为无限大。一 0 值强制延迟处理所有来自通道的地址。 \r\n\r\n务必不要为本地通道或 reprocessing 通道自身指定关键字 expandlimit,这样指定的后果是无法预测的。 \r\n\r\n实际用来执行延迟处理的通道可以使用关键字 expandchannel 指定,默认状态下使用 reprocessing 通道,如果没有指定 expandchannel,那么使用另外某些重处理通道或处理通道可能对特定目的来讲是有用的。如果通过 expandchannel 指定了处理延迟的通道,该通道应该是重处理通道或处理通道,指定其他类型的通道可能导致无法预测的结果。 \r\n\r\nreprocessing 通道或任何用于执行延迟处理的通道,必须添加到 MTA 配置文件中以便 expandlimit 关键字能发挥作用。如果配置是由 MTA 配置实用程序构建,那么一个重处理通道应该已经存在。 \r\n\r\n格外大的收件人地址列表经常是充斥大宗商业电子邮件的征兆。关键字 holdlimit 通知 MTA 当来自通道的邮件导致超过指定数量的收件人时,将其标记为 .HELD 邮件并且排入到 reprocess 通道(或任何通过 expandchannel 关键字指定的通道)中。这些文件将滞留在 reprocess 队列中不予处理,等待 MTA Postmaster 的人工干预。 \r\n\r\n\r\n\r\n启用服务转换功能 \r\n\r\n关键字: service, noservice \r\n\r\n不论 CHARSET-CONVERSION 条目为何,关键字 service 都无条件地启用服务转换功能。如果设定了 noservice 关键字,则进入此通道的邮件服务转换就必须通过 CHARSET-CONVERSION 启用。 \r\n\r\n\r\n配置地址处理功能 \r\n\r\n\r\n--------------------------------------------------------------------------------\r\n\r\n本节说明处理地址所需使用的关键字。这一部分由下列分节组成: \r\n\r\n启用服务转换功能 \r\n\r\n地址类型和约定 \r\n\r\n解释使用 ! 和 % 的地址 \r\n\r\n在地址中添加路由信息 \r\n\r\n禁用显式路由地址重写 \r\n\r\n邮件出队时的地址重写 \r\n\r\n指定更正不完全地址时应使用的主机名 \r\n\r\n使收件人标题行的邮件合法化 \r\n\r\n去除非法的空白收件人报头 \r\n\r\n启用针对具体通道的反向数据库的使用 \r\n\r\n启用受限邮箱编码 \r\n\r\n生成 Return-path: 标题行 \r\n\r\n从信封的 To: 和 From: 地址构建 Received: 标题行 \r\n\r\n处理地址 标题行中的注释 \r\n\r\n处理地址标题行中的人名 \r\n\r\n指定别名文件和别名数据库探查项 \r\n\r\n子地址的处理 \r\n\r\n启用具体通道的重写规则检查 \r\n\r\n移除源路由 \r\n\r\n指定必须来自别名的地址 \r\n\r\n\r\n地址类型和约定 \r\n\r\n关键字: 822, 733, uucp, header_822, header_733, header_uucp \r\n\r\n这组关键字用于对通道支持的地址类型进行控制。类型有传输层使用的地址(邮件信封)和邮件头使用的地址之别。 \r\n\r\n\r\n\r\n\r\n822(sourceroute) \r\n\r\n源路由信封地址。该通道全面支持 RFC 822 格式的信封寻址约定,其中包括源路由。关键字 sourceroute 也可作为 822 的同义词使用。如果没有指定其它信封地址类型关键字,则为默认关键字。 \r\n\r\n\r\n\r\n\r\n733(percents) \r\n\r\n百分号信封地址。除了源路由外,该通道全面支持 RFC 822 格式的信封寻址;源路由则应用百分号约定重写。关键字 percents 也可作为 733 的同义词使用。 \r\n\r\n\r\n\r\n--------------------------------------------------------------------------------\r\n备注: 在 SMTP 通道上使用 733 地址约定可致使这些常规被携带到 SMTP 信封中的传输层地址中。这种情况是违反 RFC 821 规定的。所以只有在确信必要时,才使用 733 地址约定。 \r\n \r\n\r\n--------------------------------------------------------------------------------\r\n\r\n\r\n\r\n\r\n\r\nuucp(bangstyle) \r\n\r\nBang-style(惊叹号式)信封地址。这种通道在信封中采用与 RFC 976 bang-style 地址约定相符的地址(例如,此乃 UUCP 通道)。关键字 bangstyle 也可作为 uucp 的同义词使用。 \r\n\r\n\r\n\r\n\r\nheader_822 \r\n\r\n源路由邮件头地址。该通道全面支持 RFC 822 格式的邮件头寻址约定,其中包括源路由。如果没有指定其它邮件头地址类型关键字,则为默认关键字。 \r\n\r\n\r\n\r\n\r\nheader_733 \r\n\r\n百分号邮件头地址。除了源路由外,该通道全面支持 RFC 822 格式的邮件头寻址;源路由则应用百分号约定重写。 \r\n\r\n\r\n\r\n--------------------------------------------------------------------------------\r\n备注: 在邮件头中使用 733 地址约定可能会违反 RFC 822 和 RFC 976 之规定。所以,请只在确信该通道所连接的系统不能处理源路由地址时,才使用该关键字。 \r\n \r\n\r\n--------------------------------------------------------------------------------\r\n\r\n\r\n\r\n\r\n\r\nheader_uucp \r\n\r\nUUCP 或 bang-style 邮件头地址。建议不要使用该关键字。因为这种用法违反 RFC 976 规约。 \r\n\r\n\r\n\r\n解释使用 ! 和 % 的地址 \r\n\r\n关键字: bangoverpercent, nobangoverpercent, percentonly \r\n\r\n地址须永远依照 RFC 822 和 RFC 976 进行解释。然而,对于没有包括在这些标准内的某些复合地址,在处理上还是有些含糊。特别是具有 A!B%C 格式的地址,既可解释为: \r\n\r\n\r\nA 为路由主机;C 为最终目的地主机 \r\n\r\n或 \r\n\r\nC 为路由主机;A 为最终目的地主机 \r\n\r\n虽然 RFC 976 暗示邮件程序可以使用后者之约定解释地址,但并未说明是否要求如此。有些情况下,前面的第一种解释可能更适用。 \r\n关键字 bangoverpercent 可强制使用第一种 A!(B%C) 解释。关键字 nobangoverpercent 则强制使用后面的(A!B)%C 解释。nobangoverpercent 是默认设置。 \r\n\r\n\r\n\r\n--------------------------------------------------------------------------------\r\n备注: 该关键字对 A!B@C 格式的地址处理没有影响。因为这些地址永远被当作 (A!B)@C 进行处理。这种处理是 RFC 822 和 RFC 976 的共同要求。 \r\n \r\n\r\n--------------------------------------------------------------------------------\r\n\r\n\r\n关键字 percentonly 可忽略 bang 路由。当设定了这个关键字时,百分号则被解释为路由。 \r\n\r\n\r\n\r\n在地址中添加路由信息 \r\n\r\n关键字: exproute, noexproute, improute, noimproute \r\n\r\nMTA 处理地址时采用的寻址模型假定:所有系统都知道所有其它系统的地址,并知道如何获取这些地址。不幸的是,这种理想的处理方法并非适用于所有情况,如:当某一通道所连接到的一个或多个系统不为世界其它地区所知时,则无法处理(例如,专用 TCP/IP 网上的内部机器)。该通道上的系统地址对于网站外的远程系统而言可能是非法的。如果您想回复这些地址,其中必须含源路由信息,以此通告远程系统使用本地机器路由邮件。如此,本地的机器才能(自动)将邮件传递到这些机器。 \r\n\r\n关键字 exproute(“explicit routing”之缩写)用于通告 MTA 相关的通道(在其地址被传送到远程系统时)需要显式路由。如果某通道上指定了该关键字,MTA 就会在所有与该通道匹配的邮件头地址和所有信封 From: 地址中添加含本地系统名称(或本地系统目前使用之别名)的信息。默认关键字 noexproute,则可指定不在其中添加路由信息。 \r\n\r\n选项 EXPROUTE_FORWARD 可用来将 exproute 之操作限制为“反向指向地址”(backward-pointing addresse)。当 MTA 通过某通道与之连接的系统不能自身执行正确的路由时,则会出现另一种情形。在这种情况中,与其它通道相关的所有地址都需有明确的路由,特别是当邮件中使用了这些地址,而发送通道与不能执行路由的系统相连接的时候,尤其如此。 \r\n\r\n隐式路由和关键字 improute 可用来为这种情况解围。MTA 知道所有与其它通道匹配的地址,在其被用于发送至标有 improute 的通道时需要进行路由选择。默认关键字 noimproute 用于指定不在通过特定通道外发的邮件地址中添加路由信息。选项 IMPROUTE_FORWARD 可用来将 improute 之操作限制为“反向指向地址”。 \r\n\r\n关键字 exproute 和 improute 应尽量少使用。因为着两个关键字会使地址变长,使之更复杂,而且可能会逾越其它系统使用的智能路由方案。显式和隐式路由不应与指定的路由相混淆。指定路由用于将重写规则中的路由信息插入到地址。这乃是通过特殊的 A@B@C 重写规则模板启用的。 \r\n\r\n当指定路由被启用时,它将应用于所有地址,邮件头和信封无一例外。指定路由是由特定重写规则启用的,因此通常独立于目前在用的通道。而显式和隐式路由则是在每条通道的基础上加以控制,所插入的路由地址也总是本地系统的地址。 \r\n\r\n\r\n\r\n禁用显式路由地址重写 \r\n\r\n关键字: routelocal \r\n\r\n通道关键字 routelocal 可使 MTA 在通道上重写地址时以“短路”方式中断地址中的任何显式路由。显式路由(使用 !、%,或 @ 字符)现已得以简化。 \r\n\r\n若在“内部”通道(如内部 TCP/IP 通道)上使用该关键字,则可用较简单的方式配置 SMTP 转节阻塞功能。 \r\n\r\n请注意,此关键字不要应在要求有显式 % 或其它路由的通道上使用。 \r\n\r\n\r\n\r\n邮件出队时的地址重写 \r\n\r\n关键字: connectalias, connectcanonical \r\n\r\nMTA 通常在将邮件排列到其通道队列时对地址进行重写。而邮件出队时则没有任何重写操作。这就可能会在主机名称更换时,而通道队列还有仍送往旧名称的邮件时,带来潜在的问题。 \r\n\r\n关键字 connectalias 可指示 MTA 将邮件发送至收件人地址中列出的任何主机。这是默认关键字。关键字 connectcanonical 可指示 MTA 连接到应该与之连接的那个系统的主机别名。 \r\n\r\n\r\n\r\n指定更正不完全地址时应使用的主机名 \r\n\r\n关键字: remotehost, noremotehost, defaulthost, nodefaulthost \r\n\r\nMTA 常常会收到一些因邮件程序和 SMTP 客户程序配置不当或不符合标准而在其中没有域名的地址。在出现这种情况时,MTA 会在允许其通过之前,尝试使这种地址合法。其具体做法是:MTA 将在地址中附加一个域名(例如,将 @siroe.com 附加到 mrochek)。 \r\n\r\n对于缺失域名的信封 To: 地址,永远假定应附加本地主机名称。然而对于其它地址(如 From: 地址),在使用 MTA SMTP 服务器的情况下,则至少有两个可选择的域名,即本地 MTA 主机名和客户 SMTP 报告的远程主机名。或在某些情况下,可能还有第三个可用的选择,即在通过该通道入站的邮件上添加一个特定的域名。由于前两个选择的操作都会在一定频率上出现,所以看上去似乎都是正确的。在处理配置不当的 SMTP 客户程序时,最好使用远程主机的域名。而在处理轻型远程邮件客户程序(如使用 SMTP 传递邮件的 POP 或 IMAP 客户程序),则最好使用本地主机的域名。或如果是 POP 或 IMAP 等轻型远程邮件客户程序,则客户程序应该有其各自的特定域名,即非本地主机域名者。在此种情况下,最好添加特定的其它域名。MTA 能做到的是允许按通道进行选择。 \r\n\r\n通道关键字 noremotehost 可指定系统使用本地知己名。关键字 noremotehost 为默认值。 \r\n\r\n通道关键字 defaulthost 用于指定需添加在入站基本用户 id 中的特定主机名。其后必须跟有主机名,用以完成进入该通道的地址(在信封 From: 和邮件头中)。(如果是提交通道,defaulthost 关键字的第一个参数也会影响基本信封 To: 地址。)供选用的第二个域名(至少有一个英文句号者)可被指定用来完成信封 To: 的地址。而 nodefaulthost 是默认值。 \r\n\r\n正如前面“来件的备用通道(转换通道)” 所描述的那样,关键字 switchchannel 可用来将入站 SMTP 连接与某一特定通道相关联。这一工具可用来在某一通道上把远程邮件客户程序分成组,以便给予适当的处理。另一种方法是:统一部署符合标准的远程邮件客户程序(即使在使用多种不兼容的客户程序情况下),而不是试图在您的 MTA 主机上更正网络上的问题;相比之下,前者更为简单。 \r\n\r\n\r\n\r\n使收件人标题行的邮件合法化 \r\n\r\n关键字: missingrecipientpolicy \r\n\r\nRFC 822 要求(因特网)邮件必须含收件人标题行,即 To:、Cc: 或 Bcc: 标题行。没有此类标题行的邮件是非法的。但是,有些老掉牙的用户代理程序和邮件程序(例如许多旧版本的 sendmail 程序)仍会吐出一些非法邮件。 \r\n\r\n关键字 missingrecipientpolicy 可用一整数值指定使用这种邮件的方法;如果没有明确的关键字在用,默认值则为 0,其意思是将信封 To: 的地址放入 To: 邮件头中。 \r\n\r\n\r\n表 8-8 missingrecipientpolicy 的值 \r\n\r\n 值 \r\n 操作 \r\n \r\n0 \r\n 将信封上的 To: 收件人放入 To: 标题行。 \r\n \r\n1 \r\n 在不做任何改变的情况下传送非法邮件。 \r\n \r\n2 \r\n 将信封上的 To: 收件人放入 To: 标题行。 \r\n \r\n3 \r\n 将所有信封 To: 收件人放入一个 Bcc: 标题行中。 \r\n \r\n4 \r\n 生成一个组结构(例如:;)To: 标题行,未指定 To: 收件人者。 \r\n \r\n5 \r\n 生成一空白的 Bcc: 标题行。 \r\n \r\n6 \r\n 拒收邮件。 \r\n \r\n\r\n\r\n\r\n\r\n请注意,选项 MISSING_RECIPIENT_POLICY 可用于设置这种行为的 MTA 系统默认值。初始的 Messaging Server 配置应将 MISSING_RECIPIENT_POLICY 设置为 1。 \r\n\r\n\r\n\r\n去除非法的空白收件人报头 \r\n\r\n关键字: dropblank, nodropblank \r\n\r\n在 RFC 822(因特网)邮件中,任何 To:、Resent-To:、Cc: 或 Resent-Cc: 报头或邮件头都需含至少一个地址,这种报头不能为空值。尽管如此,有的邮件程序还是会发放出此类非法报头或邮件头。通道关键字 dropblank 如果被指定于某源通道,则可使 MTA 从入站邮件中去除任何此种非法的空白报头。 \r\n\r\n\r\n\r\n启用针对具体通道的反向数据库的使用 \r\n\r\n关键字: reverse, noreverse \r\n\r\n关键字 reverse 可指示 MTA 按照地址反向数据库或 REVERSE 映射(如果二者之一有一个存在的话)检查并可能修改排列在通道中的邮件的地址。关键字 noreverse 则可免除对排列在通道中的邮件的地址进行地址反向处理。关键字 reverse 为默认值。有关详细说明,请参见“将内部格式地址转换为公共格式地址”。 \r\n\r\n\r\n\r\n启用受限邮箱编码 \r\n\r\n关键字: restricted, unrestricted \r\n\r\n有些邮件系统难于处理 RFC 822 允许的全长地址时。比较常见的例子是基于 sendmail 的邮件程序,特别是当其配置文件设置有误的情况下,尤其如此。引用的本地部分(或邮箱规范)是常见的麻烦来源: \r\n\r\n\"smith, ned\"@siroe.com \r\n\r\n这一问题变得如此严重,以至 RFC 1137 不得不制订相应的方法以迂回方式解决这一问题。基本方法是从地址中移除引用,然后通过翻译将需引用的字符映射成为 atom(组合单位)允许的字符(有关此处使用的 atom 一词的定义,请见 RFC 822)。例如,全面的地址可能变成: \r\n\r\nsmith#m#_ned@siroe.com \r\n\r\n通道关键字 restricted 可告知 MTA 与该通道连接的邮件系统需要这种编码。当邮件写入通道时,MTA 便可在报头和信封地址两处,对引用的本地部分进行编码处理。通道上的入站地址可自动解码。关键字 unrestricted 可指示 MTA 不进行 RFC 1137 编码和解码。关键字 unrestricted 是默认设置。 \r\n\r\n\r\n\r\n--------------------------------------------------------------------------------\r\n备注: 对于不能接受引用的本地部分的系统,当有通道与之连接时,则应使用关键字 restricted。但不应该应用于可实际生成援引本地地址部分的通道。(这种情况假定凡能生成这种地址的通道,也能处理这种这种地址。) \r\n \r\n\r\n--------------------------------------------------------------------------------\r\n\r\n\r\n\r\n\r\n生成 Return-path: 标题行 \r\n\r\n关键字: addreturnpath, noaddreturnpath \r\n\r\n在通常情况下,添加 Return-path: 标题行是执行最终传递通道的作业项。但对某些通道而言(如 ims-ms 通道),由 MTA 添加 Return-path: 报头的效率比允许通道添加之作业法更好。关键字 addreturnpath 可使 MTA 在邮件于该通道入队时添加 Return-path: 报头。 \r\n\r\n\r\n\r\n从信封的 To: 和 From: 地址构建 Received: 标题行 \r\n\r\n关键字: receivedfor, noreceivedfor, receivedfrom, noreceivedfrom \r\n\r\n关键字 receivedfor 可指示 MTA:如果某邮件只定址给一个信封收件人,则将该信封的 To: 地址包括在构建的 Received: 标题行中。关键字 receivedfor 为默认值。关键字 noreceivedfor 将指示 MTA 构建 Received:标题行,但不包括任何信封地址信息。 \r\n\r\n关键字 receivedfrom 用于指示 MTA:如果 MTA 由于某种邮件发送列表的扩展(举例)而更改了信封 From: 地址,则在构建入站邮件的 Received: 标题行时包括原信封的 From: 地址。receivedfrom 是默认设置。关键字 noreceivedfor 将指示 MTA 构建 Received:标题行,但不包括原信封的 From: 地址。 \r\n\r\n\r\n\r\n处理地址 标题行中的注释 \r\n\r\n关键字: commentinc, commentmap commentomit, commentstrip, commenttotal, sourcecommentinc, sourcecommentmap, sourcecommentomit, sourcecommentstrip, sourcecommenttotal \r\n\r\nMTA 只在必要时解释标题行的内容。然而,所有含地址的注册标题行必须在分析后重写,并去除短格式地址,或将其转换为合法地址。在此过程中,系统将在重新构建标题行时抽取并可能修改或排除注释(即括号中的字串)。 \r\n\r\n对这一系统行为的控制,可通过使用关键字 commentinc、commentmap、commentomit、commentstrip 和 commenttotal 加以实现。关键字 commentinc 将指示 MTA 保留标题行中的注释。这是默认值。关键字 commentomit 将指示 MTA 从寻址报头中移除任何注释,例如:To:、From: 或 Cc: 标题行。 \r\n\r\n关键字 commenttotal 将指示 MTA 从所有标题行中移除任何注释,但 Received: 标题行除外;这个关键字通常用处不大,也不建议用户使用。关键字 commentstrip 可指示 MTA 从所有注释字段中去除任何非基本单元之字符。关键字 commentmap 可通过 COMMENT_STRINGS 映射表运行注释字串。 \r\n\r\n在源通道上时,对这种系统行为的控制可通过下列关键字的使用加以实现:sourcecommentinc、sourcecommentmap、sourcecommentomit、sourcecommentstrip 和 sourcecommenttotal。关键字 sourcecommentinc 将指示 MTA 保留标题行中的注释。这是默认值。关键字 sourcecommentomit 用于指示 MTA 从寻址报头中(例如,To:、From: 和 Cc: 报头)移除任何注释。关键字 sourcecommenttotal 用于指示 MTA 从所有标题行中移除任何注释,但 Received: 报头除外;因为这个关键字通常用处不大,也不建议用户使用。最后,关键字 sourcecommentstrip 用于指示 MTA 从所有注释字段中去除任何非基本单元之字符。关键字 sourcecommentmap 可通过源通道运行注释字串。 \r\n\r\n这些关键字可应用于任何通道。 \r\n\r\nCOMMENT_STRINGS 映射表的语法如下: \r\n\r\n(comment_text) | address \r\n\r\n如果该条目模板设定有 $Y 标志,原注释则由特定的文本(应包括括号)予以替换。 \r\n\r\n\r\n\r\n处理地址标题行中的人名 \r\n\r\n关键字: personalinc, personalmap, personalomit, personalstrip, sourcepersonalinc, sourcepersonalmap, sourcepersonalomit, sourcepersonalstrip \r\n\r\n在重写过程中,所有含地址的注册标题行必须在分析后重写,并去除短格式地址,或将其转换为合法地址。在此过程中,系统将在重新构建标题行时抽取并可能修改或排除人名(即用尖括号分割的地址前面的字串)。 \r\n\r\n对这一系统行为的控制,可通过使用关键字 personalinc、personalmap、personalomit 和 personalstrip 加以实现。关键字 personalinc 可指示 MTA 保留报头中的人名。这是默认值。关键字 personalomit 用于指示 MTA 移除所有人名。关键字 personalstrip 用于指示 MTA 从所有人名字段中去除任何非基本单元之字符。关键字 personalmap 用于指示 MTA 通过 PERSONAL_NAMES 映射表运行人名。 \r\n\r\n在源通道上时,对这种系统行为的控制可通过下列关键字的使用加以实现:sourcepersonalinc、sourcepersonalmap、sourcepersonalomit 或 sourcepersonalstrip。关键字 sourcepersonalinc 可指示 MTA 保留报头中的人名。这是默认值。关键字 sourcepersonalomit 用于指示 MTA 移除所有人名。最后,关键字 sourcepersonalstrip 用于指示 MTA 从所有人名字段中去除任何非基本单元之字符。关键字 sourcepersonalmap 用于指示 MTA 通过源通道运行人名。 \r\n\r\n这些关键字可应用于任何通道。 \r\n\r\nPERSONAL_NAMES 映射表探查句的语法为: \r\n\r\npersonal_name | address \r\n\r\n如果模板设定有 $Y 标志,原来的人名则以特定文本替换。 \r\n\r\n\r\n\r\n指定别名文件和别名数据库探查项 \r\n\r\n关键字: aliaslocal \r\n\r\n在一般情况下,只有被重写到本地通道(即 UNIX 上的通道 1)的地址可在别名文件和别名数据库中查找。关键字 aliaslocal 可被放置在某一通道上,以使被重写到该通道的地址也可在别名文件和别名数据库中查找。查找所造之探查句的具体格式由 ALIAS_DOMAINS 选项控制。 \r\n\r\n\r\n\r\n子地址的处理 \r\n\r\n关键字: subaddressexact, subaddressrelaxed, subaddresswild \r\n\r\n作为有关子地址的概念的背景资料,本地和 ims-ms 通道需特别解释地址(邮箱部分)的本地部分中的 + 字符:在格式为 name+subaddress@domain 的地址中,MTA 将 + 字符后面的邮箱部分视为子地址。本地通道把子地址当作附加的修饰信息加以处理,并在不考虑子地址的情况下将其传递到帐户名;ims-ms 通道则将子地址解释为文件夹名,即需将其传递到的文件夹。 \r\n\r\n子地址还对下列各项有影响:按本地通道查找的别名(即 UNIX 上的 L 通道)、按标记有 aliaslocal 关键字之任何通道查找的别名,以及按目录通道查找的邮箱。对以此种方式匹配的子地址的具体处理,其方法是可以配置的:当对照一个条目比较子地址时,MTA 总是先检查包括全字匹配的子地址的整个邮箱;另外,MTA 是否在此后需进行其它或额外检查,这也是可以配置的。 \r\n\r\n关键字 subaddressexact 用于指示 MTA 在匹配条目期间不进行特殊的子地址处理;整个邮箱(包括子地址)必须与一条目匹配,以使别名被视为与之匹配。系统将不进行额外的比较(特别是不进行通配符的比较或子地址已被移除项的比较)。关键字 subaddresswild 将指示 MTA 在寻找包括整个子地址在内的精确匹配项后,MTA 下一步应寻找格式为名称 +* 的条目。关键字 subaddressrelaxed 用于指示 MTA 在寻找精确匹配以及与之匹配的格式为名+* 的项目后,MTA 应只对名称部分的匹配情况再次检查。使用关键字 subaddressrelaxed 时,具下列格式的别名条目可匹配于名称或名称 + 子地址,从而将原名转换为新名称,并将名称 + 子地址转换为新名称 + 子地址。关键字 subaddressrelaxed 为默认值。 \r\n\r\nname: newname+* \r\n\r\n因此,关键字 subaddresswild 或关键字 subaddressrelaxed 可在别名或目录通道被占用但用户想接收用任意子地址定址的邮件时使用。这些关键字免除了为一个地址上的每一单个子地址变体提供分开的条目之必要。 \r\n\r\n需注意的一点是,这些关键字只对本地通道(即 UNIX 上的 L 通道)和目录通道,或任何有 aliaslocal 关键字标记的通道有意义。 \r\n\r\n标准的 Messaging Server 配置只转接到真正有 subaddressrelaxed 行为的 L 通道(当其它关键字没有明确使用时,此乃默认关键字)。 \r\n\r\n\r\n\r\n启用具体通道的重写规则检查 \r\n\r\n关键字: rules, norules \r\n\r\n关键字 rules 用于指示 MTA 强制对该通道的重写规则进行检查。这是默认值。关键字 norules 用于指示 MTA 不检查该通道。这两个关键通常在调试时使用,很少在实际应用中使用。 \r\n\r\n\r\n\r\n移除源路由 \r\n\r\n关键字: dequeue_removeroute \r\n\r\n关键字 dequeue_removeroute 可用来在邮件出队时从信封 To: 地址中移除源路由。该关键字目前只能在 tcp-* 通道上执行。当把邮件传送到不能正确处理源路由的系统时,可用此关键字。 \r\n\r\n\r\n\r\n指定必须来自别名的地址 \r\n\r\n关键字: viaaliasoptional, viaaliasrequired \r\n\r\nviaaliasrequired 可指定:与通道匹配的最终收件人地址必须由一别名生成。最终收件人地址是指进行别名扩展后(如果相关的话)的匹配项。该地址不能作为收件人地址直接交与 MTA;也就是说,只将地址重写到通道是不够的。在重写至通道后,地址还需通过别名扩展,然后才能被视为真正与通道匹配。 \r\n\r\n例如,关键字 viaaliasrequired 可在一本地通道上使用,以防止被传送到任意帐户(如 UNIX 系统上的任意本地 Berkeley 邮箱)。 \r\n\r\n默认关键字为 viaaliasoptional,这意味系统并不要求与通道匹配的最终收件人地址一定要从一别名而生。 \r\n\r\n\r\n配置邮件头处理功能 \r\n\r\n\r\n--------------------------------------------------------------------------------\r\n\r\n本节将就处理邮件头或报头以及信封信息的关键字加以说明。这一部分由下列分节组成: \r\n\r\n重写嵌入邮件头 \r\n\r\n移除选定的邮件标题行 \r\n\r\n生成/移除 X-Envelope-to: 标题行 \r\n\r\n将日期转换为二或四位数 \r\n\r\n指定日期中的星期 \r\n\r\n自动分割长标题行 \r\n\r\n报头对齐和折行 \r\n\r\n指定报头最大长度 \r\n\r\n阅读权限检查 \r\n\r\n设置报头的默认语言 \r\n\r\n\r\n重写嵌入邮件头 \r\n\r\n关键字: noinner, inner \r\n\r\n标题行的内容只在必要时才予以解释。然而,由于 MIME 邮件能在邮件中嵌入邮件(message/RFC822),故可含多套邮件头。MTA 通常只解释和重写邮件头的最外围的部分。也可通过选择指示 MTA 对邮件内的内部邮件头同样应用邮件头重写。 \r\n\r\n此项操作可通过使用 noinner 和 inner 两个关键字得以控制。关键字 noinner 可指示 MTA 不重写邮件内的标题行。这是默认值。关键字 inner 可指示 MTA 对邮件语法进行分析并重写邮件内的邮件头。这些关键字可应用于任何通道。 \r\n\r\n\r\n\r\n移除选定的邮件标题行 \r\n\r\n关键字: headertrim, noheadertrim, headerread, noheaderread, innertrim noinnertrim \r\n\r\nMTA 可提供针对每一通道的工具,用以修剪或移除所选邮件的标题行。这项操作可通过通道关键字与相关的一个或两个报头选项文件之结合而实现。关键字 headertrim 可指示 MTA 在对原邮件头进行处理后,先查找与通道相关的邮件头选项文件,然后对排列在该目的地通道中的邮件之报头进行相应的修剪。关键字 noheadertrim 可免除对邮件头的修剪。关键字 noheadertrim 是默认值设置。 \r\n\r\n关键字 innertrim 用于指示 MTA 同时在里面的邮件部分进行邮件头修剪,即嵌入的 MESSAGE/RFC822 部分。默认关键字 noinnertrim 可用于指示 MTA 不对里面的邮件部分进行邮件头修剪。 \r\n\r\n关键字 headerread 可指示 MTA 在对原邮件头进行处理前,先查找与通道相关的邮件头选项文件,然后对排列在该源通道中的邮件之报头进行相应的修剪。请注意,headertrim 邮件头的修剪却是在邮件处理后应用的,而且是目的地通道,而非源通道。关键字 noheaderread 可免除入队邮件报头修剪。noheaderread 是默认关键字。 \r\n\r\n与关键字 headeromit 和 headerbottom 不同的是,关键字 headertrim 和 headerread 可应用于任何通道。然而须注意的情况是,从邮件中去除重要的报头信息可能会使 MTA 出现不正常的操作。因此在选择需移除或限制的报头时,须务必谨慎为佳。之所以要提供这种工具,是因为被选取的标题行有时必须移除或通过其它方式加以限制。 \r\n\r\n\r\n\r\n--------------------------------------------------------------------------------\r\n注意: \r\n 从邮件中去除报头信息可能会使 MTA 出现不正常的操作。因此在选择需移除或限制的报头时,须谨慎为佳。之所以要提供这 ie 关键字,是因为被选取的标题行有时必须移除或加以限制。在修剪或移除任何标题行之前,您必须理解标题行的用途,并考虑到移除后可能带来的影响。 \r\n \r\n\r\n--------------------------------------------------------------------------------\r\n\r\n\r\n关键字 headertrim 和 innertrim 的报头选项文件所具有的名称呈 channel_headers.opt 格式加上通道,即报头选项文件与之相关的通道名称。同样,关键字 headerread 所具有的名称呈 channel_read_headers.opt 格式。这些文件储存于 MTA 配置目录:server_root/msg-instance/imta/config/。 \r\n\r\n\r\n\r\n生成/移除 X-Envelope-to: 标题行 \r\n\r\n关键字: x_env_to, nox_env_to \r\n\r\n关键字 x_env_to 和 nox_env_to 用于控制在排列于具体通道中的邮件副本上生成或抑制 X-Envelope-to 标题行。在标记有 single 关键字的通道上,关键字 x_env_to 可启用这些报头的生成,而 nox_env_to 则可从入队的邮件中移除此类报头。默认关键字是 nox_env_to。 \r\n\r\n关键字 x_env_to 还需要有 single 关键字与之一起使用才能起作用。 \r\n\r\n\r\n\r\n将日期转换为二或四位数 \r\n\r\n关键字: datefour, datetwo \r\n\r\n原有的 RFC 822 规范要求邮件头中的日期字段应为两位数年份。后来出版的 RFC 1123 将日期格式改为四位数,然而,有些老邮件系统却无法接受四位数日期。更麻烦的是,较新的邮件系统又不能忍受两位数的日期。 \r\n\r\n\r\n\r\n--------------------------------------------------------------------------------\r\n备注: 凡是不能处理这两种日期格式的系统,都属违反标准。 \r\n \r\n\r\n--------------------------------------------------------------------------------\r\n\r\n\r\n关键字 datefour 和 datetwo 可用来控制 MTA 在处理邮件头中的年份字段的方法。默认的关键字 datefour 可指示 MTA 将所有年份字段扩展为四位数。系统将在小于 50 的两位数日期值中添加 2000,而在大于 50 的值中添加 1900。 \r\n\r\n\r\n\r\n--------------------------------------------------------------------------------\r\n注意: \r\n 关键字 datetwo 可指示 MTA 从四位数日期中删除前面的两位数。这是为需要使用两位数日期的不符合标准的邮件系统提供兼容性;但决不应用于任何其它目的。 \r\n \r\n\r\n--------------------------------------------------------------------------------\r\n\r\n\r\n\r\n\r\n指定日期中的星期 \r\n\r\n关键字: dayofweek, nodayofweek \r\n\r\nRFC 822 规范允许在邮件头的日期字段中存在主要的星期格式。然而,有些系统则不能接受有关星期的信息。致使某些系统不愿将星期信息包括在内,即使在邮件头中包括这样的信息很有用处。 \r\n\r\n关键字 dayofweek 和 nodayofweek 可控制 MTA 处理星期信息的方式。默认关键字 dayofweek 可用来指示 MTA 保留任何星期信息,并在缺失的情况下将其添加到日期和时间报头中。 \r\n\r\n\r\n\r\n--------------------------------------------------------------------------------\r\n注意: \r\n 关键字 nodayofweek 可指示 MTA 从日期和时间报头中移除任何主要的星期信息。这是为不能处理星期信息的不符合标准的邮件系统提供的一种兼容方式;但决不应用于任何其它目的。 \r\n \r\n\r\n--------------------------------------------------------------------------------\r\n\r\n\r\n\r\n\r\n自动分割长标题行 \r\n\r\n关键字: maxheaderaddrs, maxheaderchars \r\n\r\n有些邮件传递程序,特别是有些 sendmail 系统,不能妥善地处理长标题行。其结果往往不仅是使报头损坏,而且会误使邮件遭到拒绝。虽然这种操作严重违反了标准,但却是一个较常见的问题。 \r\n\r\nMTA 提供的、针对具体通道的工具可将长标题行分割(拆开)成多个独立的标题行。关键字 maxheaderaddrs 用于控制一行上可以显示多少个地址。关键字 maxheaderchars 用于控制一行上可以显示多少个字符。这两个关键字都需要一个单一的整数参数,用以指定相关的限制。默认设置是:不限制标题行的长度,也不限制显示的地址数量。 \r\n\r\n\r\n\r\n报头对齐和折行 \r\n\r\n关键字: headerlabelalign, headerlinelength \r\n\r\n关键字 headerlabelalign 用于控制在该通道上排列的邮件头的成行点;需使用一整数值的变量。对齐点乃是报头内容对齐的页边距。例如,取 10 为样本标题行的对齐点时,其格式为下列: \r\n--------------------------------------------------------------------------------\r\n \r\nTo: joe@siroe.com \r\nFrom: mary@siroe.com \r\nSubject: Alignment test \r\n \r\n\r\n--------------------------------------------------------------------------------\r\n \r\n\r\n\r\n默认 headerlabelalign 是 0,可使报头不对齐。关键字 headerlinelength 用于控制在该通道上排列的邮件标题行的长度。长度超过这一限制的行将按照 RFC 822 折行规则折行。 \r\n\r\n这些关键字只控制邮件队列中的邮件报头格式;报头的实际显示通常由用户代理程序控制。此外,当邮件在因特网上传输的时候,报头会定期被重新格式处理,所以这些关键字可能没有显著的效果,即使与不能重新格式处理邮件头的简单用户代理程序一起使用时,也是如此。 \r\n\r\n\r\n\r\n指定报头最大长度 \r\n\r\n关键字: maxprocchars \r\n\r\n处理含许多地址的长标题行是一项非常耗用系统资源的操作。关键字 maxprocchars 可用来指定 MTA 能处理并重写的最大报头长度。报头长度超过此限的邮件仍可被接受和传递,但唯一不同的是长标题行将不会被以任何方式重写。此项操作需使用单一的整数参数。默认设置是处理任何长度的报头。 \r\n\r\n\r\n\r\n阅读权限检查 \r\n\r\n关键字: sensitivitynormal, sensitivitypersonal, sensitivityprivate sensitivitycompanyconfidential \r\n\r\n阅读权限检查关键字可设定某通道可接受的邮件阅读权限的上限。默认关键字是 sensitivitycompanyconfidential;即任何阅读权限的邮件都可通过。无 Sensitivity: 报头的邮件被视为正常邮件,即最低的阅读权限。邮件阅读权限高于由此关键字指定之限制者,将在其于通道入队之时予以拒收,并拌以下列出错讯息: \r\n\r\nmessage too sensitive for one or more paths used \r\n\r\n请注意,MTA 的这种阅读权限检查是根据每封邮件的情况,而不是在每个收件人级上进行的:即如果一个收件人的目的地通道没有通过阅读权限检查,则所有收件人的邮件都将被退回,而不是只退回与此阅读权限通道相关的收件人的邮件。 \r\n\r\n\r\n\r\n设置报头的默认语言 \r\n\r\n关键字: language \r\n\r\n报头中的编码文字可以为某种特定语言。关键字 language 可指定所需的默认语言。 \r\n\r\n\r\n附件与 MIME 处理 \r\n\r\n\r\n--------------------------------------------------------------------------------\r\n\r\n本节将就附件和 MIME 处理所需使用的关键字加以说明。这一部分由下列分节组成: \r\n\r\n忽略 Encoding:标题行 \r\n\r\n自动重组邮件/部分邮件 \r\n\r\n大型邮件自动拆分 \r\n\r\n实施邮件行长度限制 \r\n\r\n\r\n忽略 Encoding:标题行 \r\n\r\n关键字: ignoreencoding, interpretencoding \r\n\r\nMTA 可用 Yes CHARSET-CONVERSION 将各种非标准的邮件格式转换为 MIME。特别是 RFC 1154 格式,因为这种格式使用了一种非标准的 Encoding: 标题行。然而,有些网关会在这种标题行上传送一些不正确的信息,其结果是有时最好忽略这种标题行。关键字 ignoreencoding 可用来指示 MTA 忽略任何 Encoding: 标题行。 \r\n\r\n\r\n\r\n--------------------------------------------------------------------------------\r\n备注: 除非 MTA 启用了 CHARSET-CONVERSION,否则这种报头在任何情况下都予以忽略。关键字 interpretencoding 可用来指示 MTA 严加注意任何有 Encoding: 的标题行(如果是通过其它方式如此配置的话);该关键字是默认设置。 \r\n \r\n\r\n--------------------------------------------------------------------------------\r\n\r\n\r\n\r\n\r\n自动重组邮件/部分邮件 \r\n\r\n关键字: defragment, nodefragment \r\n\r\nMIME 标准规定了可将邮件分成几个小部分的邮件/部分内容类型。这一规定的用处在于:当邮件需在有大小限制的网络上传输时,或在不可靠的网络上传输时邮件分段可被“检查点”阻挡,从而使邮件在传输期间因网络故障而无法随后进行全面复制还原。这一标准规定了邮件每一部分中应包括的信息,以便邮件可在抵达目的地后自动重新组装。 \r\n\r\n通道关键字 defragment 和重组通道为在 MTA 中重新组装邮件提供了有效的手段。当某通道被标记为 defragment 时,通道中排列的任何部分邮件都将被转到重组通道队列。待所有“部分”抵达后,系统将重建邮件,然后发送出去。关键字 nodefragment 用于关闭此特殊处理功能。关键字 nodefragment 为默认值。 \r\n\r\n\r\n\r\n大型邮件自动拆分 \r\n\r\n关键字: maxblocks, maxlines \r\n\r\n有些电子邮件系统或网络传输装置不能处理超过一定大小限制的邮件。MTA 提供的工具可用来在每一通道的基础上实行这种限制。超过设定限制的邮件将自动被拆分(分段)为几个小邮件。用于这种拆分作业的内容类型是 message/partial,并添加有一独特的 ID 参数,以便同一邮件的各个部分可相互关联,并可由接收邮件程序自动重新组装。 \r\n\r\n关键字 maxblocks 和 maxlines 用于实施大小限制,一旦有超限的邮件,拆分功能便可自动启用。这两个关键字后面都需跟有单一的整数值。关键字 maxblocks 用于指定邮件中允许的最大信息块数量。MTA 的一个信息快通常为 1024 字节;这一数量可用 MTA 选项文件中的 BLOCK_SIZE 选项进行变换。关键字 maxlines 用于指定邮件中允许的最多行数。需要时,这两个极限可同时实施。 \r\n\r\n从某种程度上讲,邮件的大小包括邮件头。因为邮件头不能被分成多个邮件,但邮件头本身却能超过指定的大小限制,故须使用一个非常复杂的机制来计算邮件头的大小。这一逻辑受控于 MTA 选项文件中的 MAX_HEADER_BLOCK_USE 和 MAX_HEADER_LINE_USE 选项。 \r\n\r\nMAX_HEADER_BLOCK_USE 用于指定 0 和 1 之间的一个实数。默认值是 0.5。系统只允许邮件头占用邮件可消耗的总信息块数量的一定数量(由关键字 maxblocks 指定)。如果邮件头较大,MTA 则取 MAX_HEADER_BLOCK_USE 和 maxblocks 的乘积作为邮件头的大小(邮件头的大小取实际邮件头大小和 maxblocks 之间的较小者)* MAX_HEADER_BLOCK_USE。 \r\n\r\n例如,如果 maxblocks 是 10 且 MAX_HEADER_BLOCK_USE 是默认值(即 0.5),则任何大于 5 个信息块的邮件头都将作为 5-block 报头处理,如果邮件的大小是 5 个信息块或更少,则不予以拆分。就邮件大小极限而言,0 值会使报头有效地得以忽略。 \r\n\r\n该值为 1 时,系统则允许邮件头使用所有可用的量。每一拆分的部分至少要有一行,不论其是否超过极限。MAX_HEADER_LINE_USE 在与关键字 maxlines 一起使用时,其作业方法与此相同。 \r\n\r\n\r\n\r\n实施邮件行长度限制 \r\n\r\n关键字: linelength \r\n\r\nSMTP 规范允许文本行数可含 1000 字节。然而,有些传输装置则可对行长度实施严格的限制。关键字 linelength 提供的机制可用来以通道为基础限制最大允许的邮件行长度。如果在特定通道入队的邮件,其长度超过了为该通道指定的极限,系统则自动对其进行编码处理。 \r\n\r\nMTA 中可用的各种编码功能总能将行长度降至少于 80 个字符。原邮件可在经过这种编码后得以还原,方法是:应用适当的解码过滤器。 \r\n\r\n\r\n\r\n--------------------------------------------------------------------------------\r\n备注: 编码功能只能将行长度减至不多于 80 个字符。小于 80 的行长度值规范可能不会真正地生成符合所述限制的行长。 \r\n \r\n\r\n--------------------------------------------------------------------------------\r\n\r\n\r\n关键字 linelength 可使数据的编码作业为传输目的而进行“软”折行。编码通常在接收端解码,以便恢复原来的“长”行。有关“硬”折行的说明,请见“Record, text”CHARSET-CONVERSION。 \r\n\r\n\r\n邮件大小限制、用户定额和特权 \r\n\r\n\r\n--------------------------------------------------------------------------------\r\n\r\n本节说明设定邮件大小限制、用户定额和特权所需使用的关键字。这一部分由下列分节组成: \r\n\r\n指定邮件的绝对大小极限 \r\n\r\n处理超定额用户的邮件传递 \r\n\r\n\r\n指定邮件的绝对大小极限 \r\n\r\n关键字: blocklimit, noblocklimit, linelimit, nolinelimit, sourceblocklimit \r\n\r\n虽然拆分可自动将邮件分成小块,但在有些情况下,较为适宜的做法是拒收那些超过管理部门界定之极限的邮件(例如,为了防止因蓄意的攻击而出现拒绝服务现象)。 \r\n\r\n关键字 blocklimit、linelimit 和 sourceblocklimit 用于实施绝对大小限制。这几个关键字后面都需跟有单一的整数值。 \r\n\r\n关键字 blocklimit 用于指定邮件中允许的最大信息块数量。对于信息块数量超过此限量的邮件,MTA 将拒绝把其排入通道的尝试。MTA 的一个信息快通常为 1024 字节;这一数量可用 MTA 选项文件中的 BLOCK_SIZE 选项进行变换。 \r\n\r\n关键字 sourceblocklimit 用于指定入站邮件中允许的最大信息块数量。对于信息块数量超过此限量的邮件,MTA 将拒绝把其提交到通道的尝试。换言之,blocklimit 适用于目的地通道;sourceblocklimit 适用于源通道。MTA 的一个信息快通常为 1024 字节;这一数量可用 MTA 选项文件中的 BLOCK_SIZE 选项进行变换。 \r\n\r\n关键字 linelimit 用于指定邮件中允许的最多行数。对于行数超过此限量的邮件,MTA 将拒绝把其排入通道的尝试。必要时,关键字 blocklimit 和 linelimit 可同时施加。 \r\n\r\nMTA 选项 LINE_LIMIT 和 BLOCK_LIMIT 可在所有通道上实施类似的限制。这些极限的好处是它们可在所有通道上使用。因此,MTA 服务器可在获得邮件收件人信息之前,使邮件客户程序对此有所准备。对于某些通信协议而言,这种限制简化了邮件拒收过程。 \r\n\r\n通道关键字 nolinelimit 和 noblocklimit 都是默认值,这意味着除了通过 LINE_LIMIT 或 BLOCK_LIMIT MTA 选项施加的任何全局限制外,没有其它限制。 \r\n\r\n\r\n\r\n处理超定额用户的邮件传递 \r\n\r\n关键字: holdexquota, noexquota \r\n\r\n关键字 noexquota 和 holdexquota 可用来控制如何处理传送给 Berkeley 邮箱用户(UNIX)的邮件,即用户传递到 uid 本地通道,但用户超过了他们的磁盘定额。 \r\n\r\nnoexquota 可指示 MTA 将传送给超定额用户的邮件退回给邮件的发件人。holdexquota 则指示 MTA 暂时保留传送给超定额用户的邮件;这类邮件将保留在 MTA 队列中,直至被传递或超时为止,然后通过邮件退回作业将其退回给发件人。 \r\n\r\n\r\n在 MTA 队列 中创建文件 \r\n\r\n\r\n--------------------------------------------------------------------------------\r\n\r\n本节描述您可用之控制磁盘资源的关键字,具体方法是在 MTA 队列中指定需创建的文件。这一部分由下列分节组成: \r\n\r\n控制如何处理邮件上的多地址 \r\n\r\n在多个子目录上分布通道邮件队列 \r\n\r\n\r\n控制如何处理邮件上的多地址 \r\n\r\n关键字: multiple, addrsperfile, single, single_sys \r\n\r\nMTA 允许每一入队的邮件显示多个目的地址。有些通道程序只能处理有一个收件人的邮件,或有有限数量收件人的邮件,或每个邮件副本只有一个目的地系统的邮件。例如,SMTP 通道主程序在特定的事务处理中只能与单一远程主机建立连接,至此只有定址到该主机的地址能够得到处理(即尽管某单一通道通常可用于所有 SMTP 业务)。 \r\n\r\n另一个例子是,有些 SMTP 服务器可能会就其一次处理收件人的数量施加限量,同时又不能处理此类错误。 \r\n\r\n关键字 multiple、addrsperfile、single 和 single_sys 可用于控制如何处理多个地址。关键字 single 可指定为每个目的地址在通道上创建一个单独的邮件副本。关键字 single_sys 可为每个所用目标系统创建一个单一的邮件副本。默认关键字 multiple 可用来为整个通道创建邮件的单一副本。 \r\n\r\n\r\n\r\n--------------------------------------------------------------------------------\r\n备注: 不论使用哪个关键字,系统都将为邮件入队的每个通道至少创建一个邮件副本。 \r\n \r\n\r\n--------------------------------------------------------------------------------\r\n\r\n\r\n关键字 addrsperfile 用于在限制收件人的最大数量,即与通道队列中单一邮件文件相关的收件人数量,这样便可限制一次作业处理的收件人数量。该关键字需要使用单一整数变量,用以指定邮件文件中允许的最大收件人地址数量;如果达到了这个数,MTA 将自动创建额外的邮件文件将其容纳在其中。(默认关键字 multiple 总体上相当有于不在邮件文件中施加收件人数量限制,但 SMTP 通道的默认设置为 99。) \r\n\r\n\r\n\r\n在多个子目录上分布通道邮件队列 \r\n\r\n关键字: subdirs \r\n\r\n其默认设置是:所有入队的邮件都作为文件储存在\r\n/imta/queue/channel-name 目录中,其中 channel-name 为通道名。然而,对于需处理大量邮件的通道而言,如 TCP/IP 通道,因为总是累积有大量等待处理的邮件文件,所以若把这些邮件文件分布到几个子目录,文件系统的性能可能会有所改善。通道关键字 subdirs 提供了这一能力:其后应跟有一个整数,用以指定在其上分布该通道邮件的子目录的数量;例如: \r\n\r\ntcp_local single_sys smtp subdirs 10 \r\n\r\n\r\n配置日志记录和调试 \r\n\r\n\r\n--------------------------------------------------------------------------------\r\n\r\n本节说明关键字 logging 和 debugging。 \r\n\r\n日志记录关键字 \r\n\r\n关键字 Debugging \r\n\r\n设置循环检查 \r\n\r\n\r\n日志记录关键字 \r\n\r\n关键字: logging, nologging \r\n\r\nMTA 提供的工具可记录入队和出队的每一封邮件的情况。关键字 logging 和 nologging 可针对每个通道控制邮件的日志记录。在默认状态下,初始配置将打开所有通道的日志记录功能。在通道定义中替换成 nologging 关键字可禁用某个特定通道的日志记录功能。 \r\n\r\n有关日志记录的详细说明,请见第 13 篇 “日志记录和日志分析”。 \r\n\r\n\r\n\r\n关键字 Debugging \r\n\r\n关键字: master_debug, slave_debug, nomaster_debug, noslave_debug \r\n\r\n一些通道程序包含有可选代码,以便产生附加的诊断输出来协助调试。有两个通道关键字可用来启用产生针对每一个通道的调试输出。这两个关键字是:在主程序中启用调试输出的 master_debug 和在从属程序中启用调试输出的 slave_debug。默认状态下,两类调试输出都被禁用,相应关键字为 nomaster_debug 和 noslave_debug。 \r\n\r\n启用后,调试输出将出现在与通道程序相关的日志文件中。日志文件的位置因程序而异。日志文件通常保存在日志目录中。主程序日志文件名的形式通常为 x_master.log,此处的 x 为通道名。从属程序日志文件名的形式通常为 x_slave.log。 \r\n\r\n在 UNIX 中,当 master_debug 和 slave_debug 启用用于 l 通道时,用户随后会在含 MTA 调试信息的当前目录中收到 imta_sendmail.log-uniqueid 文件(如果他们有写入该目录的权限的话;否则调试输出转到 stdout)。 \r\n\r\n\r\n\r\n设置循环检查 \r\n\r\n关键字: loopcheck, noloopcheck \r\n\r\n关键字 loopcheck 可将字串放置在 SMTP EHLO 应答标志区,以便 MTA 检查其自身是否在与之通信。当设定了 loopcheck 时,SMTP 服务器将以 XLOOP 扩展文件出面。 \r\n\r\n当它与支持 XLOOP 的 SMTP 服务器通信时,MTA 的 SMTP 客户程序将用其 MTA 值比较显示的字串,并在客户程序与 SMTP 服务器实际通信之时立即退回邮件。 \r\n\r\n\r\n其它关键字 \r\n\r\n\r\n--------------------------------------------------------------------------------\r\n\r\n本节描述其它关键字的使用方法。这一部分由下列分节组成: \r\n\r\n通道操作类型 \r\n\r\n管道通道 \r\n\r\n指定邮箱过滤器文件的位置 \r\n\r\n\r\n通道操作类型 \r\n\r\n关键字: submitsubmit \r\n\r\nMessaging Server 支持 RFC 2476 的邮件提交协议。关键字 submit 可用于将一通道标记为仅用于提交的通道。这通常对 TCP/IP 通道最为有用,如一个运行在专用于提交邮件的特殊端口上 SMTP 服务器;RFC 2476 将端口 587 确定为用于此类邮件提交。 \r\n\r\n\r\n\r\n管道通道 \r\n\r\n关键字: user \r\n\r\n关键字 user 用于在管道通道上指示在哪个海洋名下运行。 \r\n\r\n请注意,user 的参数或变量通常被强制使用小写,但如果是引用参数,则保留原来的大小写字样。 \r\n\r\n\r\n\r\n指定邮箱过滤器文件的位置 \r\n\r\n关键字: filter, nofilter, channelfilter, nochannelfilter, destinationfilter nodestinationfilter, sourcefilter, nosourcefilter, fileinto, nofileinto) \r\n\r\n关键字 filter 可用来在本机和 ims-ms 通道上指定该通道的用户过滤器文件的位置。描述过滤器文件位置时,须用 URL 参数。nofilter 是默认设置,它意味着用户邮箱过滤器没有为该通道而启用。 \r\n\r\n关键字 sourcefilter 和 destinationfilter 可用来在一般的 MTA 通道上指定通道级过滤器,以分别应用于入站和出站邮件。这些关键字需使用 URL 参数描述通道过滤器文件的位置。nosourcefilter 和 nodestinationfilter 是默认设置,它意味着没有为通道的任何后一个方向启用通道邮箱过滤器。 \r\n\r\n已废弃的关键字 channelfilter 和 nochannelfilter 分别与 destinationfilter 和 nodestinationfilter 同义。 \r\n\r\n目前只支持 ims-ms 通道的关键字 fileinto 用于指定施加了邮箱过滤器的 fileinto 算符后如何改变地址。对于 ims-ms 通道而言,通常的用法为: \r\n\r\nfileinto $U+$S@$D \r\n\r\n上述例子指定:文件夹名称应作为子地址插入到原地址,以此替换任何原有的子地址。 |
|