Sun Java System Messaging Server 6.3 管理指南

25.3 管理 MTA 邮件和连接日志

MTA 提供了记录每个入队列和出队列的邮件的功能。还提供了分发程序错误和调试输出。

本节包含以下几个部分:

您可以控制每个通道上的日志记录,也可以指定要记录的所有通道上的邮件活动。在初始配置中,所有通道上均禁用日志记录。

有关详细信息,请参见25.3.2 启用 MTA 日志记录

启用日志记录会使 MTA 在每次邮件通过 MTA 通道时,都将一个条目写入 msg-svr-base/data/log/mail* 文件中。这类日志条目对收集有关通过 MTA(或通过特定通道)的邮件数量的统计信息将很有用。您还可以使用这些日志条目来调查其他问题,例如,是否发送或传送了邮件,以及发送或传送邮件的时间。

邮件返回作业(每晚午夜时分运行),将所有现有 mail.log_yesterday 都附加到累积日志文件 mail.log,将当前 mail.log_current 文件重命名为 mail.log_yesterday,然后开始一个新的 mail.log_current 文件。邮件返回作业对所有 connection.log* 文件也执行相似的操作。

MTA 执行自动轮转以维护当前文件时,您必须通过确定任务(例如备份文件、截断文件、删除文件等)的策略来管理累积 mail.log 文件。

考虑如何管理日志文件时,请注意 MTA 定期返回作业将执行站点提供的 msg-svr-base/bin/daily_cleanup 程序(如果存在)。因此,某些站点可能选择提供他们自己的清除程序,例如每周(或每月)重命名一次旧的 mail.log 文件等。


注 –

启用日志记录后,mail.log 文件将稳定地增长,如果不对其进行限制,则将消耗所有可用磁盘空间。监视此文件的大小并定期地删除不必要的内容。按照要求将创建此文件的另一版本时,还可以删除整个文件。


25.3.1 了解 MTA 日志条目格式

MTA 日志文件以 ASCII 文本书写。默认情况下,每个日志文件条目都包含八个或九个字段,如下面示例中所示。

16-Feb-2007 14:54:13.72 tcp_local ims-ms EE 1 adam@sesta.com rfc822;marlowe@siroe.com marlowe@ims-ms-daemon

日志条目显示:

  1. 创建条目的日期和时间(在此示例中为 16-Feb-2007 14:54:13.72)。

  2. 源通道的通道名称(在此示例中为 tcp_local)。

  3. 目标通道的通道名称(在此示例中为 ims-ms)。(对于 SMTP 通道,当启用 LOG_CONNECTION 时,加号 (+) 表示入站到 SMTP 服务器;减号 (-) 表示通过 SMTP 客户端出站。)

  4. 条目的类型(在此示例中为 EE)。条目可以由单个操作代码(请参见表 25–2)组成,也可以由一个操作代码和一个或多个修饰符代码(请参见表 25–3)组成。条目的格式如下所示:

    <action_code> <zero or more optional modifiers>

    例如,EEC 的日志记录条目代码表示邮件使用 ESMTP(修饰符为 E)和 SMTP Chunking(修饰符为 C)入队列(操作代码为 E)。有关当前使用的操作和修饰符代码的详细信息,请参阅下表。

  5. 邮件的大小(在此示例中为 1)。默认表示为千字节(使用 MTA 选项文件中的 BLOCK_SIZE 关键字可以更改此默认值)。在该字段中,SMS 通道可以被配置为记录页面数,而不是文件大小。请参见 LOG_PAGE_COUNT

  6. 信封 From: 地址(在此示例中为 adam@sesta.com)。请注意对于信封 From: 地址 为空的邮件(如通知邮件),此字段为空白。

  7. 信封 To: 地址的原始格式(在此示例中为 marlowe@siroe.com)。

  8. 信封 To: 地址的活动(当前)格式(在此示例中为 marlowe@ims-ms-daemon)。

  9. 传送状态(仅适用于 SMTP 通道)。

以下三个表说明了日志记录条目代码。

表 25–2 日志记录条目操作代码

条目 

说明 

发送至 SMTP 服务器的错误命令。收件人地址字段将包含被拒绝的命令,而诊断字段将包含 SMTP 服务器所给出的响应。MTA 通道选项 (MAX_B_ENTRIES) 用于控制将记录到给定会话中的错误命令的数量。默认值为 10。 

成功出队列 

入队列 

拒绝尝试入队列(被从通道程序拒绝) 

拒绝收件人邮件。如果发件人请求 NOTIFY=NEVER DSN 标志设置、邮件超时,或者手动返回邮件(例如,imsimta qm "delete" 命令始终为每个收件人生成 "K" 记录,而 qm "return" 命令则生成 "K" 记录而非 "R" 记录)。这表示不会根据发件人自己的请求向发件人发送通知。

与 "K" 记录相比,"R" 记录也为相同的拒绝/超时类型,但在 "R" 中系统会根据失败邮件生成一封新的通知邮件(返回给原发件人)。 

出队列临时故障 

尝试出队列时收件人地址被拒绝(被主通道程序拒绝),或生成故障/退回邮件 

事务被异常中止时显示的警告消息。每个加入队列的收件人地址都有一个 "V" 记录。 

发送的警告消息以通知原发件人邮件尚未发送,但仍在重试的队列中。 

已成功发送给一些收件人,但临时未成功发送给此收件人;所有收件人的原始邮件文件已出队列,并在该位置将此收件人和其他未成功发送的收件人的新邮件文件加入队列 

下表说明了日志记录条目修饰符代码。

表 25–3 日志记录条目修饰符代码

条目 

说明 

使用了 SASL 验证。 

使用了 Chunking。请注意,必须使用 ESMTP,chunking 才能起作用,因此您通常会看到类似 EECDEC 的字段值。

发出/接受 EHLO 命令,因此使用了 ESMTP。 

使用了 LMTP。 

使用了 TLS/SSL。S 事务日志条目现在增加了各种与通道关联的提交邮件计数器。 

如果启用了 LOG_CONNECTION(请参见《Sun Java System Messaging Server 6.3 Administration Reference》中的“Option File Format and Available Options”),则会使用另一组操作代码。下面对这些条目进行了介绍。

表 25–4 SMTP 通道的 LOG_CONNECTION 操作代码 + 或 - 条目

条目 

说明 

已关闭连接。将出现诊断字段。写入 connection.log_current(或者 mail.log_current,如果使用了单个日志文件)。用于记录关闭连接的原因。尤其是,如果关闭连接是由于达到了某些会话断开连接限制,则诊断字段中将显示此事实。 

已打开连接 

记录 SMTP 验证的成功信息和失败信息。格式与其他 O 和 C 条目相同。尤其是,相同的应用程序和传输信息字段以相同的顺序显示。如果已知用户名,则它将记录在用户名字段中。LOG_CONNECTION MTA 选项的位 7(值 128)将控制此过程。 

已拒绝连接 

建立连接之前尝试连接失败 

已收到 ETRN 命令 

LOG_CONNECTIONLOG_FILENAMELOG_MESSAGE_IDLOG_NOTARYLOG_PROCESSLOG_USERNAME 在 MTA 选项文件中全部启用后,格式将发生变化,如下面示例中所示。(此样例日志条目行已因版式原因而换行;实际日志条目将显示在一个物理行。)


16-Feb-2007 15:04:01.14 2bbe.5.3 tcp_local ims-ms
EE 1 service@siroe.com rfc822;adam@sesta.com
adam@ims-ms-daemon 20 /opt/SUNWmsgsr/data/queue/ims-ms/000/ZZf0r2i0HIaY1.01
<0JDJ00803FAON200@mailstore.siroe.com> mailsrv
siroe.com (siroe.com [192.160.253.66])

除了上面已讨论的那些字段外,其中的附加字段是:

  1. 进程 ID(以十六进制表示),其后是句号(点)字符和计数。如果此为多线程通道条目(即,tcp_* 通道条目),则在进程 ID 和计数之间还会显示线程 ID。在本示例中,进程 ID 是 2bbe.5.3。

  2. 邮件的 NOTARY(发送收据请求)标志,表示为整数(在本示例中为 20)。

  3. MTA 队列区中的文件名(在本示例中为 /opt/SUNWmsgsr/data/queue/ims-ms/000/ZZf0r2i0HIaY1.01)。

  4. 邮件 ID(在本示例中为 <0JDJ00803FAON200@mailstore.siroe.com>)。

  5. 正在执行的进程的名称(在本示例中为 mailsrv)。在 UNIX 上,对于分发程序进程(例如 SMTP 服务器),此名称通常为 mailsrv(除非已使用 SASL,在这种情况下,此名称将是经过验证的用户名,例如 *service@siroe.com)。

  6. 连接信息(在本示例中为 siroe.com (siroe.com [192.160.253.66]))。连接信息由发送系统或通道名称组成,例如由 HELO/EHLO 线路上的发送系统表示的名称(对于外来 SMTP 邮件),或加入通道队列的官方主机名(对于其他类型的通道)。对于 TCP/IP 通道,发送系统的真实名称(即由 DNS 反向查找和/或 IP 地址报告的符号名称)也可在 ident* 通道关键字的控制下报告在括号内;有关默认 identnone 关键字的示例,请参见12.4.3.4 IDENT 查找,该关键字选择显示在 DNS 中的名称和 IP 地址。

25.3.2 启用 MTA 日志记录

要仅收集几个特定 MTA 通道的统计信息,请仅启用感兴趣的那些 MTA 通道上的日志记录通道关键字。许多站点倾向于启用所有 MTA 通道上的日志记录。特别是,如果您要尝试跟踪问题,诊断某些问题的第一步是注意到邮件未进入您期望或想要的通道,启用所有通道的日志记录将有助于您调查此类问题。

Procedure在特定通道上启用 MTA 日志记录

  1. 编辑 imta.cnf 文件。

    该文件位于 /opt/SUNWmsgsr/config 目录中。

  2. 要为特定通道启用日志记录,请将 logging 关键字添加到通道定义中。例如:


    channel-name keyword1 keyword2 logging
    

    此外,您还可以设置一些配置参数,例如日志文件的目录路径、日志级别等等。请参见25.4 管理消息存储、Admin 和 Default 服务的日志

Procedure在所有通道上启用 MTA 日志记录

  1. 编辑 imta.cnf 文件。

    该文件位于 /opt/SUNWmsgsr/config 目录中。

  2. 将 logging 关键字添加到 defaults 通道配置文件中(请参见12.1 配置通道默认值)。例如:


    defaults logging notices 1 2 4 7 copywarnpost copysendpost postheadonly 
    noswitchchannel immnonurgent maxjobs 7 defaulthost siroe.com siroe.com
    
    !
    ! delivery channel to local /var/mail store
    l subdirs 20 viaaliasrequired maxjobs 7 pool LOCAL_POOL
    mailhost.siroe.com

25.3.3 指定附加 MTA 日志记录选项

除了启用日志记录时通常提供的基本信息之外,您还可以通过设置 MTA 选项文件中的各种 LOG_* MTA 选项来指定要包含的其他可选信息字段。IMTA 调整文件 (msg-svr-base/config/imta_tailor) 中的 IMTA_OPTION_FILE 选项指定的文件将指定 MTA 选项文件。默认情况下,该文件为 msg-svr-base /config/option.dat 文件。

有关 MTA 选项文件的完整详细信息,请参见《Sun Java System Messaging Server 6.3 Administration Reference》中的“Option File”

本节包含以下几个部分:

Procedure向系统日志发送 MTA 日志

  1. 编辑 MTA 选项文件。

  2. LOG_MESSAGES_SYSLOG 选项设置为 1。

    0 值将禁用系统日志通知的生成。非 0 值将启用系统日志通知的生成,其绝对值控制系统日志优先级和工具掩码。(正值表示系统日志通知和常规 mail.log* 条目;负值(不推荐使用)只表示系统日志通知,而禁用常规 mail.log* 条目。)0 值为默认值并表示未执行系统日志(事件日志)记录。

Procedure控制日志条目格式

  1. 编辑 MTA option.dat 文件。

  2. 设置 LOG_FORMAT 选项。

    • 1(默认值)为标准格式。

    • 2 要求为非空格式:空地址字段转换为字符串 "<>"

    • 3 要求为计数格式:所有变量长度字段都以 N 开头,其中 N 是字段中字符数的计数。

    • 4 导致以 XML 兼容的格式写入日志条目。入口日志条目显示为包含多个属性且没有子元素的单个 XML 元素。这三个元素当前被定义为:en 用于入队/出队条目、co 用于连接条目、he 用于标题条目。

      入队/出队 (en) 元素可以具有以下属性:


      ts - time stamp (always present)
      no - node name (present if LOG_NODE=1)
      pi - process id (present if LOG_PROCESS=1)
      sc - source channel (always present)
      dc - destination channel (always present)
      ac - action (always present)
      sz - size (always present)
      so - source address (always present)
      od - original destination address (always present)
      de - destination address (always present)
      rf - recipient flags (present if LOG_NOTARY=1)
      fi - filename (present if LOG_FILENAME=1)
      ei - envelope id (present if LOG_ENVELOPE_ID=1)
      mi - message id (present if LOG_MESSAGE_ID=1)
      us - username (present if LOG_USERNAME=1)
      ss - source system (present if bit 0 of LOG_CONNECTION
           is set and source system information is available)
      se - sensitivity (present if LOG_SENSITIVITY=1)
      pr - priority (present if LOG_PRIORITY=1)
      in - intermediate address (present if LOG_INTERMEDIATE=1)
      ia - initial address (present if bit 0 of LOG_INTERMEDIATE
           is set and intermediate address information is available)
      fl - filter (present if LOG_FILTER=1 and filter information
           is available)     
      re - reason (present if LOG_REASON=1 and reason string is set)
      di - diagnostic (present if diagnostic info available)
      tr - transport information (present if bit 5 of LOG_CONNECTION
           is set and transport information is available)
      ap - application information (present if bit 6 of LOG_CONNECTION
           is set and application information is available)
      qt - the amount of time a message has spent in the queue (LOG_QUEUE_TIME=1)

      下面是一个样例 en 条目:


      <en ts="2004-12-08T00:40:26.70" pi="0d3730.10.43" sc="tcp_local"
      dc="l" ac="E" sz="12" so="info-E8944AE8D033CB92C2241E@whittlesong.com"
      od="rfc822;ned+2Bcharsets@mauve.sun.com"
      de="ned+charsets@mauve.sun.com" rf="22"
      fi="/path/ZZ01LI4XPX0DTM00IKA8.00" ei="01LI4XPQR2EU00IKA8@mauve.sun.com"
      mi="<11a3b401c4dd01$7c1c1ee0$1906fad0@elara>" us=""
      ss="elara.whittlesong.com ([208.250.6.25])"
      in="ned+charsets@mauve.sun.com" ia="ietf-charsets@innosoft.com"
      fl="spamfilter1:rvLiXh158xWdQKa9iJ0d7Q==, addheader, keep"/>

      请注意,为了清晰起见,该条目进行了换行,实际日志文件条目总是以单行显示的。

      连接 (co) 条目可以具有以下属性:


      ts - time stamp (always present, also used in en entries)
      no - node name (present if LOG_NODE=1, also used in en entries)
      pi - process id (present if LOG_PROCESS=1, also used in en entries)
      sc - source channel (always present, also used in en entries)
      dr - direction (always present)
      ac - action (always present, also used in en entries)
      tr - transport information (always present, also used in en entries)
      ap - application information (always present, also used in en entries)
      mi - message id (present only if message id info available,
           also used in en entries)
      us - username (present only if username information available, also
           used in en entries)
      di - diagnostic (present only if diagnostic information available,
           also used in en entries)
      ct - the amount of time a message has spent in the queue (LOG_QUEUE_TIME=1, 
      also used in en entries)

      下面是一个 co 条目示例:


      <co ts="2004-12-08T00:38:28.41" pi="1074b3.61.281" sc="tcp_local" dr="+"
      ac="O" tr="TCP|209.55.107.55|25|209.55.107.104|33469" ap="SMTP"/>

      标题 (he) 条目具有以下属性:


      ts - time stamp (always present, also used in en entries)
      no - node name (present if LOG_NODE=1, also used in en entries)
      pi - process id (present if LOG_PROCESS=1, also used in en entries)
      va - header line value (always present)

      下面是一个 he 条目示例:


      <he ts="2004-12-08T00:38:31.41" pi="1074b3.61.281" va="Subject: foo"/>

Procedure与日志邮件条目相关联

  1. 编辑 MTA 选项文件。

  2. LOG_MESSAGE_ID 选项设置为 1。

    默认值为 0,表示邮件 ID 未保存在 mail.log 文件中。

Procedure记录邮件在队列中花费的时间

  1. 编辑 MTA 选项文件。

  2. LOG_QUEUE_TIME 选项设置为 1。

    该选项记录邮件在队列中花费的时间。队列时间记录为一个整数值(以秒为单位)。在非 XML 格式日志中,该值紧接应用程序信息字符串之后显示。在 XML 格式日志中,该值的属性名为 qt

Procedure标识邮件传送重试

  1. 编辑 MTA 选项文件。

  2. LOG_FILENAME 选项设置为 1。

    此选项便于立即发现特定邮件文件传送的重试次数。此选项在了解 MTA 是否将传送给多个收件人的邮件分割为磁盘上独立的邮件文件副本时也会很有用。

Procedure记录 TCP/IP 连接

  1. 编辑 MTA 选项文件。

  2. 设置 LOG_CONNECTION 选项。

    此选项可使 MTA 记录 TCP/IP 连接以及邮件通信流量。默认情况下,系统将连接日志条目写入 mail.log* 文件。也可以将连接日志条目写入 connection.log* 文件。有关详细信息,请参见 SEPARATE_CONNECTION_LOG 选项。

Procedure将条目写入 connection.log 文件

  1. 编辑 MTA 选项文件。

  2. SEPARATE_CONNECTION_LOG 选项设置为 1。

    使用此选项来指定将连接日志条目改写入 connection.log 文件中。默认值 0 将导致连接日志记录存储在 MTA 日志文件中。

Procedure通过进程 ID 与日志邮件相关联

  1. 编辑 MTA 选项文件。

  2. 设置 LOG_PROCESS 选项。

    LOG_CONNECTION 结合使用时,此选项通过进程 ID 启用连接条目与对应的邮件条目的关联关系。

Procedure将与使邮件加入队列的进程关联的用户名保存在 mail.log 文件中

  1. 编辑 MTA 选项文件。

  2. 设置 LOG_USERNAME 选项。

    此选项控制是否将与使邮件入队的进程相关联的用户名保存在 mail.log 文件中。对于使用了 SASL (SMTP AUTH) 的 SMTP 提交,用户名字段将是经过验证的用户名(带有星号字符前缀)。

25.3.4 MTA 邮件日志记录示例

记录在 MTA 邮件文件中的确切字段格式和字段列表将根据设置的日志记录选项而有所不同。本节将描述一些解释典型日志条目类别的示例。本节包含以下几个部分:

有关其他可选字段的说明,请参见25.3.3 指定附加 MTA 日志记录选项


注 –

由于印刷版式原因,日志文件条目被折叠成多行显示—实际日志文件条目是每个条目一行。


查看日志文件时,请记住在典型系统上会一次处理多封邮件。通常,与特定邮件相关的条目将散布在与其他同时正在处理的邮件相关的条目中。基本日志记录信息适用于收集通过 MTA 移动的邮件总体数目。

如果您希望有关至同一收件人的同一邮件的特定条目相关联,则启用 LOG_MESSAGE_ID。要将特定邮件与 MTA 队列区域中的特定文件相关联,或从条目查看已尝试传送特定的尚未成功出队列的邮件的次数,请启用 LOG_FILENAME。对于 SMTP 邮件(通过 TCP/IP 通道处理),如果希望将远程系统的 TCP 连接与已发送的邮件相关联,则启用 LOG_PROCESSLOG_CONNECTION 的某一级别。

25.3.4.1 MTA 日志记录示例:用户发送外发邮件

下面的示例显示了如果本地用户通过外发 TCP/IP 通道发送邮件(例如发送到 Internet),而可能看到的日志条目类别相当基本的示例。在本示例中,启用了 LOG_CONNECTION。标有 (1) 和 (2) 的行是一个条目—它们在实际日志文件中将显示为一个物理行。类似地,标有 (3) - (7) 的行是一个条目并将显示为一个物理行。


示例 25–1 MTA 日志记录:本地用户发送外发邮件


16-Feb-2007 15:41:32.36 tcp_intranet tcp_local    EE 1    (1)
adam@sesta.com rfc822;marlowe@siroe.com marlowe@siroe.com (2)
siroe.com (siroe.com [192.160.253.66])

16-Feb-2007 15:41:34.73 tcp_local                 DE 1    (3)
adam@sesta.com rfc822;marlowe@siroe.com marlowe@siroe.com (4)
thor.siroe.com dns;thor.siroe.com

(TCP|206.184.139.12|2788|192.160.253.66|25)               (5)

(thor.siroe.com ESMTP Sendmail ready Thu 15 Feb 2007 21:37:29 -0700 [MST]) (6)

smtp;250 2.1.5 <marlowe@siroe.com>... Receipt ok           (7)
  1. 此行显示了一 (1) 块邮件使用 ESMTP (EE) 从 tcp_intranet 通道到 tcp_local 通道入队列的日期和时间。

  2. 这是与 (1) 位于同一日志文件物理行的一部分,因排版方便而在此处分行显示。这里显示了信封 From: 地址(在本例中为 adam@sesta.com)以及原始版本和当前版本的信封 To: 地址(在本例中为 marlowe@siroe.com)。

  3. 显示了一 (1) 块邮件使用 ESMTP (DE) 从 tcp_local 通道出队列的日期和时间,即,由 tcp_local 通道成功发送到某一远程 SMTP 服务器。

  4. 显示了信封 From: 地址、原始信封 To: 地址,以及信封 To: 地址的当前格式。

  5. 显示了与之建立连接的实际系统在 DNS 中名为 thor.siroe.com,本地发送系统具有 IP 地址 206.184.139.12 并从端口 2788 发送,远程目标系统具有 IP 地址 192.160.253.66 并且远程目标系统的连接端口是端口 25。

  6. 显示了远程 SMTP 服务器的 SMTP 标志行。

  7. 显示了返回的此地址的 SMTP 状态代码;250 是基本的 SMTP 成功代码,而此远程 SMTP 服务器使用扩展的 SMTP 状态代码和某一附加文本进行响应。


25.3.4.2 MTA 日志记录示例:包括可选日志记录字段

该示例显示了类似于示例 25–3 中所示的日志记录条目,其中 LOG_FILENAME=1 LOG_MESSAGE_ID=1 显示文件名(下面的 1 和 3)和邮件 ID(下面的 2 和 4)。. 特别是邮件 ID 可用于将条目与邮件相关联。


示例 25–2 MTA 日志记录:包括可选日志记录字段


16-Feb-2007 15:41:32.36 tcp_intranet tcp_local    EE 1   
adam@sesta.com rfc822;marlowe@siroe.com marlowe@siroe.com
/opt/SUNWmsgsr/data/queue/tcp_local/002/ZZf0r4i0Wdy51.01  (1)
<0JDJ00D02IBWDX00@sesta.com>                              (2)
siroe.com (siroe.com [192.160.253.66])

16-Feb-2007 15:41:34.73 tcp_local                 DE 1
adam@sesta.com rfc822;marlowe@siroe.com marlowe@siroe.com 
/opt/SUNWmsgsr/data/queue/tcp_local/002/ZZf0r4i0Wdy51.01  (3)
<0JDJ00D02IBWDX00@sesta.com>                              (4)
thor.siroe.com dns;thor.siroe.com
(TCP|206.184.139.12|2788|192.160.253.66|25)
(thor.siroe.com ESMTP Sendmail ready at Thu, 15 Feb 2007 21:37:29 -0700 [MST])
smtp;250 2.1.5 <marlowe@siroe.com>... Recipient ok

25.3.4.3 MTA 日志记录示例:发送到列表

此示例对启用 LOG_FILENAME=1LOG_MESSAGE_ID=1LOG_CONNECTION=1 将邮件发送给多个收件人进行了说明。此处已将用户 adam@sesta.com 发送给 MTA 邮件列表 test-list@sesta.com,此邮件列表已扩展到 bob@sesta.comcarol@varrius.comdavid@varrius.com。请注意每个收件人的原始信封 To: 地址对每个收件人都是 test-list@sesta.com,尽管当前信封 To: 地址是每个收件人各自的地址。请注意邮件 ID 是如何保持一致的,尽管涉及了两个单独的文件(一个用于 l 通道而另一个用于出 tcp_local 通道)。


示例 25–3 MTA 日志记录:发送到列表


20-Feb-2007 14:00:16.46 tcp_local    tcp_local    EE 1
adam@sesta.com rfc822;test-list@sesta.com carol@varrius.com 
/opt/SUNWmsgsr/data/queue/tcp_local/004/ZZf0r2D0yuej4.01 
<0JDQ00706R0FX100@sesta.com> 
siroe.com (siroe.com [192.160.253.66])

20-Feb-2007 14:00:16.47 tcp_local    tcp_local    EE 1
adam@sesta.com rfc822;test-list@sesta.com david@varrius.com
/opt/SUNWmsgsr/data/queue/tcp_local/004/ZZf0r2D0yuej4.01 
<0JDQ00706R0FX100@sesta.com> 
siroe.com (siroe.com [192.160.253.66])

20-Feb-2007 14:00:16.48 tcp_local    ims-ms       EE 1 
adam@sesta.com rfc822;test-list@sesta.com bob@ims-ms-daemon 
/opt/SUNWmsgsr/data/queue/ims-ms/008/ZZf0r2D0yuej6.01 
<0JDQ00706R0FX100@sesta.com>
siroe.com (siroe.com [192.160.253.66])

20-Feb-2007 14:00:16.68 ims-ms                    D 1 
adam@sesta.com rfc822;test-list@sesta.com bob@ims-ms-daemon 
/opt/SUNWmsgsr/data/queue/ims-ms/008/ZZf0r2D0yuej6.01 
<0JDQ00706R0FX100@sesta.com>

20-Feb-2007 14:00:17.73 tcp_local                 DE 1 
adam@sesta.com rfc822;test-list@sesta.com carol@varrius.com 
/opt/SUNWmsgsr/data/queue/tcp_local/004/ZZf0r2D0yuej4.01 
<0JDQ00706R0FX100@sesta.com> 
gw.varrius.com dns;gw.varrius.com (TCP|206.184.139.12|2788|192.160.253.66|25)
(gw.varrius.com -- SMTP Sendmail)
smtp;250 2.1.5 <carol@varrius.com >... Recipient ok

20-Feb-2007 14:00:17.75 tcp_local                 DE 1 
adam@sesta.com rfc822;test-list@sesta.com david@varrius.com 
/opt/SUNWmsgsr/data/queue/tcp_local/004/ZZf0r2D0yuej4.01 
<0JDQ00706R0FX100@sesta.com> 
gw.varrius.com dns;gw.varrius.com (TCP|206.184.139.12|2788|192.160.253.66|25)
(gw.varrius.com -- SMTP Sendmail)
smtp;250 2.1.5 <david@varrius.com>... Recipient ok

25.3.4.4 MTA 日志记录:发送到不存在的域

此示例对尝试发送到不存在的域(此处为 very.bogus.com)进行了说明;即,发送到未被 MTA 的重写规则发现其不存在的、并且被 MTA 匹配到外发 TCP/IP 通道的域名。此示例假设 MTA 选项设置为 LOG_FILENAME=1LOG_MESSAGE_ID=1

TCP/IP 通道在 DNS 中运行并检查域名时,DNS 返回一个错误,指示该名称不存在。请注意 [5] 中所示的“拒绝”条目 (R),以及 [6] 中所示的 DNS 返回的错误(指示该域名为非法域名)。

由于提交邮件后地址被拒绝,MTA 将生成退回邮件给原发送人。MTA 将新拒绝邮件加入队列以发送给原发送人 (1),并在删除原出站邮件((5) 中所示的 R 条目)之前,将一份副本发送给邮寄主管 (4)。

通知邮件(例如退回邮件)具有空信封 From: 地址—例如,如 (2) 和 (8) 中所示—其中信封 From: 字段显示为空白。由 MTA 生成的退回邮件的初始排队显示了新通知邮件的邮件 ID 和紧随其后的原始邮件 (3) 的邮件 ID。(此类信息对于 MTA 不是总可以使用,但可用于记录时,它允许对应于出站失败的邮件的日志条目与对应于结果通知邮件的日志条目相关联。)此类通知邮件入队到进程通道,该通道转而又将这些邮件排队到相应的目标通道 (7)。


示例 25–4 MTA 日志记录:发送到不存在的域


20-Feb-2007 14:17:07.77 tcp_intranet tcp_local    E 1 
adam@sesta.com rfc822;user@very.bogus.com user@very.bogus.com 
/opt/SUNWmsgsr/data/queue/tcp_local/008/ZZf0r2D0CVaL0.00 
<0JDQ00903RS89T00@sesta.com>
siroe.com (siroe.com [192.160.253.66])

20-Feb-2007 14:17:08.24 tcp_local    process      E 1       (1)
rfc822;adam@sesta.com adam@sesta.com                        (2)
/opt/SUNWmsgsr/data/queue/process/ZZf0r2D0CVbR0.00 
<0JDQ00904RSK9Z00@sesta.com>,<0JDQ00903RS89T00@sesta.com>   (3)
tcp-daemon.mailhost.sesta.com

20-Feb-2007 14:17:08.46 tcp_local    process      E 1       (4)
rfc822;postmaster@sesta.com postmaster@sesta.com 
/opt/SUNWmsgsr/data/queue/process/ZZf0r2D0CVbR1.00 
<0JDQ00906RSK9Z00@sesta.com>,<0JDQ00903RS89T00@sesta.com> 
tcp-daemon.mailhost.sesta.com

20-Feb-2007 14:17:08.46 tcp_local                 R 1       (5)
adam@sesta.com rfc822;user@very.bogus.com user@very.bogus.com 
/opt/SUNWmsgsr/data/queue/tcp_local/008/ZZf0r2D0CVaL0.00
<0JDQ00903RS89T00@sesta.com>  
Illegal host/domain name found                              (6)
(TCP active open: Failed gethostbyname() on very.bogus.com, resolver errno = 1)

20-Feb-2007 14:17:09.21 process      ims-ms       E 3       (7)
rfc822;adam@sesta.com adam@ims-ms-daemon                    (8)
/opt/SUNWmsgsr/data/queue/ims-ms/018/ZZf0r2D0CVbS1.00 
<0JDQ00904RSK9Z00@sesta.com> 
process-daemon.mailhost.sesta.com

20-Feb-2007 14:17:09.72 process      ims-ms       E 3  
rfc822;postmaster@sesta.com postmaster@ims-ms-daemon
/opt/SUNWmsgsr/data/queue/ims-ms/014/ZZf0r2D0CVbS2.00 
<0JDQ00906RSK9Z00@sesta.com> 
process-daemon.mailhost.sesta.com

20-Feb-2007 14:17:09.73 ims-ms                    D 3  
rfc822;adam@sesta.com adam@ims-ms-daemon 
/opt/SUNWmsgsr/data/queue/ims-ms/018/ZZf0r2D0CVbS1.00 
<0JDQ00904RSK9Z00@sesta.com>

20-Feb-2007 14:17:09.84 ims-ms                    D 3 
rfc822;postmaster@sesta.com postmaster@ims-ms-daemon
/opt/SUNWmsgsr/data/queue/ims-ms/014/ZZf0r2D0CVbS2.00 
<0JDQ00906RSK9Z00@sesta.com>

25.3.4.5 MTA 日志记录示例:发送至不存在的远程用户

此示例对尝试发送到远程系统上的错误地址进行了说明。此示例假设 MTA 选项设置为 LOG_FILENAME=1LOG_MESSAGE_ID=1,通道选项设置为 LOG_BANNER=1LOG_TRANSPORTINFO=1。请注意拒绝条目 (R),如 (1) 中所示。但与示例 25–4 中的拒绝条目不同,请注意此处的拒绝条目显示了已建立到远程系统的连接,并显示了远程 SMTP 服务器发布的 SMTP 错误代码,(2) 和 (3)。(2) 中所示的信息是设置通道选项 LOG_BANNER=1LOG_TRANSPORTINFO=1 的结果。


示例 25–5 MTA 日志记录:发送至不存在的远程用户


26-Feb-2007 13:56:35.16 tcp_intranet tcp_local    EE 1 
adam@sesta.com rfc822;nonesuch@siroe.com nonesuch@siroe.com 
/opt/SUNWmsgsr/data/queue/tcp_local/000/ZZf0s690a3mf2.01 
<0JE100J08UU24H00@sesta.com> 
siroe.com (siroe.com [192.160.253.66])

26-Feb-2007 13:56:35.19 tcp_local    process      E 1  
rfc822;adam@sesta.com adam@sesta.com 
/opt/SUNWmsgsr/data/queue/process/ZZf0s690a3ml2.00 
<0JE100J09UUB4N00@sesta.com>,<0JE100J08UU24H00@sesta.com> 
tcp-daemon.mailhost.sesta.com

26-Feb-2007 13:56:35.20 tcp_local    process      E 1  
rfc822;postmaster@sesta.com postmaster@sesta.com 
/opt/SUNWmsgsr/data/queue/process/ZZf0s690a3ml3.00 
<0JE100J0BUUB4N00@sesta.com>,<0JE100J08UU24H00@sesta.com>
tcp-daemon.mailhost.sesta.com

26-Feb-2007 13:56:35.20 tcp_local                 RE 1          (1)
adam@sesta.com rfc822;nonesuch@siroe.com nonesuch@siroe.com 
/opt/SUNWmsgsr/data/queue/tcp_local/000/ZZf0s690a3mf2.01 
<0JE100J08UU24H00@sesta.com> 
thor.siroe.com dns;thor.siroe.com 
(TCP|206.184.139.12|2788|192.160.253.66|25)                     (2)
(thor.siroe.com -- Server ESMTP [Sun Java System Messaging 
Server 6.2-8.01 [built Feb 16 2007]]) 
smtp;550 5.1.1 unknown or illegal alias: nonesuch@siroe.com     (3)

26-Feb-2007 13:56:35.62 process      ims-ms       E 4  
rfc822;adam@sesta.com adam@ims-ms-daemon 
/opt/SUNWmsgsr/data/queue/ims-ms/003/ZZf0s690a3mm5.00 
<0JE100J09UUB4N00@sesta.com> 
process-daemon.mailhost.sesta.com

26-Feb-2007 13:56:36.07 process      ims-ms       E 4  
rfc822;postmaster@sesta.com postmaster@ims-ms-daemon 
/opt/SUNWmsgsr/data/queue/ims-ms/016/ZZf0s690a3nm7.01 
<0JE100J0BUUB4N00@sesta.com> 
process-daemon.mailhost.sesta.com

26-Feb-2007 13:56:35.83 ims-ms                    D 4  
rfc822;adam@sesta.com adam@ims-ms-daemon 
/opt/SUNWmsgsr/data/queue/ims-ms/003/ZZf0s690a3mm5.00 
<0JE100J09UUB4N00@sesta.com>

26-Feb-2007 13:56:36.08 ims-ms                    D 4  
rfc822;postmaster@sesta.com postmaster@ims-ms-daemon 
/opt/SUNWmsgsr/data/queue/ims-ms/016/ZZf0s690a3nm7.01 
<0JE100J0BUUB4N00@sesta.com>

25.3.4.6 MTA 日志记录示例:拒绝远程端提交邮件的尝试

此示例对当 MTA 拒绝远程端提交邮件的尝试时所产生的日志文件条目的类别进行了说明。(本示例假设未启用 LOG_* 可选项,因此条目中仅记录了基本字段。请注意,启用 LOG_CONNECTION 选项将导致在此类 J 条目中产生附加信息字段。)在此例中,示例是对已使用 ORIG_SEND_ACCESS 映射设置了 SMTP 中继阻止(请参见18.7 配置 SMTP 中继阻止)的 MTA 而言的 ,该映射包括:

ORIG_SEND_ACCESS

! ...numerous entries omitted...
!
   tcp_local|*|tcp_local|*   $NRelaying$ not$ permitted

其中 alan@very.bogus.com 不是内部地址。因此远程用户 harold@varrius.com 尝试通过 MTA 系统中继到远程用户 alan@very.bogus.com 遭到拒绝。


示例 25–6 MTA 日志记录:拒绝远程端提交邮件的尝试


26-Feb-2007 14:10:06.89 tcp_local                 JE 0  (1)
harold@varrius.com rfc822; alan@very.bogus.com                 (2)
530 5.7.1 Relaying not allowed: alan@very.bogus.com            (3)
  1. 此日志显示了拒绝远程端提交邮件的尝试的日期和时间。拒绝由 J 记录表示。(MTA 通道尝试发送邮件而被拒绝的情况以 R 记录表示,如示例 25–4示例 25–5 中所示)。


    注 –

    写入日志的最后一个 J 记录将有一个指示,用于声明它是给定会话的最后一个 J 记录。此外,Messaging Server 的当前版本没有对 J 记录的数量做出限制。


  2. 显示了尝试的信封 From: 和 To: 地址、地址。在此示例中,无可用的原始信封 To: 信息,因此该字段为空。

  3. 此条目包括 MTA 发给远程端(尝试的发件人)的 SMTP 错误消息。


25.3.4.7 MTA 日志记录示例:多次传送尝试

此示例对在第一次尝试时不能发送邮件所产生的日志文件条目的类别进行了说明,因此 MTA 将多次尝试发送该邮件。本示例假设选项设置为 LOG_FILENAME=1LOG_MESSAGE_ID=1


示例 25–7 MTA 日志记录:多次传送尝试


26-Feb-2007 14:38:16.27 tcp_intranet tcp_local    EE 1           (1)
adam@sesta.com rfc822;user@some.org user@some.org 
/opt/SUNWmsgsr/data/queue/tcp_local/001/ZZf0s690kN_y0.00 
<0JE100L05WRJIC00@sesta.com>

26-Feb-2007 14:38:16.70 tcp_local                 Q 1                    (2)
adam@sesta.com rfc822;user@some.org user@some.org
/opt/SUNWmsgsr/data/queue/tcp_local/001/ZZf0s690kN_y0.00                 (3)
<0JE100L05WRJIC00@sesta.com> 
TCP active open: Failed connect() 192.1.1.1:25  Error: no route to host  (4)

...several hours worth of entries...

26-Feb-2007 16:58:11.20 tcp_local                 Q 1                    (5)
adam@sesta.com rfc822;user@some.org user@some.org
/opt/SUNWmsgsr/data/queue/tcp_local/001/ZYf0s690kN_y0.01                 (6)
<0JE100L05WRJIC00@sesta.com> 
TCP active open: Failed connect() 192.1.1.1:25    Error: no route to host

...several hours worth of entries...

26-Feb-2007 19:15:12.11 tcp_local                 Q 1     
adam@sesta.com rfc822;user@some.org user@some.org
/opt/SUNWmsgsr/data/queue/tcp_local/001/ZXf0s690kN_y0.00                  (7)
<0JE100L05WRJIC00@sesta.com> 
TCP active open: Failed connect() 192.1.1.1:25  Error: Connection refused (8)

...several hours worth of entries...

26-Feb-2007 22:41:12.63 tcp_local                 DE 1                     (9)
adam@sesta.com rfc822;user@some.org user@some.org
/opt/SUNWmsgsr/data/queue/tcp_local/001/ZXf0s690kN_y0.00                 
<0JE100L05WRJIC00@sesta.com> 
host.some.org dns;host.some.org (TCP|206.184.139.12|2788|192.1.1.1|25)
(All set, fire away)
smtp;250 2.1.5 <user@some.org >... Recipient ok
  1. 邮件进入 tcp_internal 通道—可能来自 POP 或 IMAP 客户端,或可能来自使用 MTA 作为 SMTP 中继的组织中的其他主机;MTA 将其加入到 tcp_local 外发通道队列。

  2. 第一次传送尝试失败,由 Q 条目表示。

  3. ZZ* 文件名可以看出这是第一次传送尝试。

  4. TCP/IP 软件包找不到至远程端的路由时,此传送尝试将失败。与示例 25–4 不同,DNS 并非拒绝目标域名 some.org;而是,"no route to host" 错误表示在发送端和接收端之间存在网络问题。

  5. 下一次 MTA 定期作业运行时,它重新尝试传送,再次不成功。

  6. 文件名现在为 ZY*,表示这是第二次尝试。

  7. 第三次未成功尝试的文件名是 ZX*

  8. 下一次定期作业重新尝试传送,传送失败,尽管这一次 TCP/IP 软件包未对无法进入远程 SMTP 服务器表示不满,但其实是远程 SMTP 服务器不接受连接。(可能远程端修复了其网络问题,但尚未备份其 SMTP 服务器- - 或其 SMTP 服务器正忙于处理其他邮件而无法在 MTA 尝试连接时接受连接。)

  9. 最终对邮件取消排队。


25.3.4.8 MTA 日志记录:通过转换通道路由外来 SMTP 邮件

此示例对通过转换通道路由邮件的情况进行了说明。假设此站点具有 CONVERSIONS 映射表,例如:

CONVERSIONS
   IN-CHAN=tcp_local;OUT-CHAN=ims-ms;CONVERT Yes

本示例假设选项设置为 LOG_FILENAME=1LOG_MESSAGE_ID=1


示例 25–8 MTA 日志记录:通过转换通道路由外来 SMTP 邮件


26-Feb-2007 15:31:04.17 tcp_local    conversion   EE 1   (1)
amy@siroe.edu rfc822;bert@sesta.com bert@ims-ms-daemon 
/opt/SUNWmsgsr/data/queue/conversion/ZZf0s090wFwx2.01 
<0JE100206Z7J5F00@siroe.edu>

26-Feb-2007 15:31:04.73 conversion   ims-ms       E 1           (2)
amy@siroe.edu rfc822;bert@sesta.com bert@ims-ms-daemon 
/opt/SUNWmsgsr/data/queue/ims-ms/007/ZZf0s090wMwq1.00 
<0JE100206Z7J5F00@siroe.edu>

26-Feb-2007 15:31:04.73 conversion                D 1           (3)
amy@siroe.edu rfc822;bert@sesta.com bert@ims-ms-daemon 
/opt/SUNWmsgsr/data/queue/conversion/ZZf0s090wFwx2.01 
<0JE100206Z7J5F00@siroe.edu>

26-Feb-2007 15:31:04.73 ims-ms                    D 1           (4)
amy@siroe.edu rfc822;bert@sesta.com bert@ims-ms-daemon 
/opt/SUNWmsgsr/data/queue/ims-ms/007/ZZf0s090wMwq1.00 
<0JE100206Z7J5F00@siroe.edu>
  1. 来自外部用户 amy@siroe.edu 的邮件进入,其收件人地址为 ims-ms 通道收件人 bert@sesta.com 的地址。但是,CONVERSIONS 映射条目使邮件初始时排到转换通道(而不是直接进入 ims-ms 通道)。

  2. 转换通道运行并将邮件排到 ims-ms 通道队列。

  3. 然后转换通道可以使邮件出队列(删除旧邮件文件)。

  4. 最后,ims-ms 通道使邮件出队列(传送)。


25.3.4.9 MTA 日志记录示例:出站连接日志记录

此示例说明了通过 LOG_CONNECTION=3 启用连接日志记录后外发邮件的日志输出。在本示例中还假设 LOG_PROCESS=1LOG_MESSAGE_ID=1LOG_FILENAME=1。本示例显示了用户 adam@sesta.com 将同一邮件(请注意每个邮件副本的邮件 ID 都相同)发送给三个收件人 bobby@hosta.sesta.comcarl@hosta.sesta.comdave@hostb.sesta.com 的情况。本示例假设邮件从标有(如此类通道通常的那样)single_sys 通道关键字的 tcp_local 通道发出。因此,如 (1)、(2) 和 (3) 中所示,系统将在磁盘上为不同主机名的每组收件人分别创建邮件文件,其中 bobby@hosta.sesta.comcarl@hosta.sesta.com 收件人存储在同一邮件文件中,而 dave@hostb.sesta.com 收件人存储在另一邮件文件中。


示例 25–9 MTA 日志记录:出站连接日志记录


28-Feb-2007 09:13:19.18 409f.3.1 tcp_intranet tcp_local    EE 1 
adam@sesta.com rfc822;bobby@hosta.sesta.com bobby@hosta.sesta.com
/opt/SUNWmsgsr/data/queue/tcp_local/000/ZZf0s4g0G2Zt0.00            (1)
<0JE500C0371HRJ00@sesta.com> 
siroe.com (siroe.com [192.160.253.66])

28-Feb-2007 09:13:19.18 409f.3.1 tcp_intranet tcp_local    EE 1 
adam@sesta.com rfc822;carl@hosta.sesta.com carl@hosta.sesta.com
/opt/SUNWmsgsr/data/queue/tcp_local/000/ZZf0s4g0G2Zt0.00            (2)
<0JE500C0371HRJ00@sesta.com> 
siroe.com (siroe.com [192.160.253.66])

28-Feb-2007 09:13:19.19 409f.3.2 tcp_intranet tcp_local    EE 1 
adam@sesta.com rfc822;dave@hostb.sesta.com dave@hostb.sesta.com
/opt/SUNWmsgsr/data/queue/tcp_local/004/ZZf0s4g0G2Zt1.00            (3)
<0JE500C0371HRJ00@sesta.com> 
siroe.com (siroe.com [192.160.253.66])

28-Feb-2007 09:13:19.87 40a5.2.0 tcp_local    -  O                  (4)
TCP|206.184.139.12|5900|206.184.139.66|25
SMTP/hostb.sesta.com/mailhub.sesta.com                              (5)

28-Feb-2007 09:13:20.23 40a5.3.4 tcp_local    -  O                  (6)
TCP|206.184.139.12|5901|206.184.139.70|25
SMTP/hosta.sesta.com/hosta.sesta.com                                (7)

28-Feb-2007 09:13:20.50 40a5.2.5 tcp_local                 DE 1 
adam@sesta.com rfc822;bobby@hosta.sesta.com bobby@hosta.sesta.com
/opt/SUNWmsgsr/data/queue/tcp_local/000/ZZf0s4g0G2Zt0.00 
<0JE500C0371HRJ00@sesta.com> 
hosta.sesta.com dns;hosta.sesta.com                                 (8)
(TCP|206.184.139.12|5901|206.184.139.70|25)
(hosta.sesta.com -- Server ESMTP [Sun Java System Messaging Server 
6.2-8.01 [built Feb 16 2007]]) 
smtp;250 2.1.5 bobby@hosta.sesta.com and options OK.

28-Feb-2007 09:13:20.50 40a5.2.5 tcp_local                 DE 1 
adam@sesta.com rfc822;carl@hosta.sesta.com carl@hosta.sesta.com
/opt/SUNWmsgsr/data/queue/tcp_local/000/ZZf0s4g0G2Zt0.00 
<0JE500C0371HRJ00@sesta.com> 
hosta.sesta.com dns;hosta.sesta.com
(TCP|206.184.139.12|5901|206.184.139.70|25)
(hosta.sesta.com -- Server ESMTP [Sun Java System Messaging Server 
6.2-8.01 [built Feb 16 2007]]) 
smtp;250 2.1.5 carl@hosta.sesta.com and options OK.

28-Feb-2007 09:13:20.50 40a5.2.6 tcp_local    -  C                  (9)
TCP|206.184.139.12|5901|206.184.139.70|25
SMTP/hosta.sesta.com/hosta.sesta.com

28-Feb-2007 09:13:21.13 40a5.3.7 tcp_local                 DE 1 
adam@sesta.com rfc822;dave@hostb.sesta.com dave@hostb.sesta.com
/opt/SUNWmsgsr/data/queue/tcp_local/004/ZZf0s4g0G2Zt1.00 
<0JE500C0371HRJ00@sesta.com> 
mailhub.sesta.com dns;mailhub.sesta.com
(TCP|206.184.139.12|5900|206.184.139.66|25)
(mailhub.sesta.com ESMTP Sendmail ready at Tue, 27 Feb 2007 22:19:40 GMT) 
smtp;250 2.1.5 <dave@hostb.sesta.com>... Recipient ok

28-Feb-2007 09:13:21.33 40a5.3.8 tcp_local    -  C                  (10)
TCP|206.184.139.12|5900|206.184.139.66|25
SMTP/hostb.sesta.com/mailhub.sesta.com
  1. 邮件已排入队列,准备发给第一个收件人...

  2. ....准备发给第二个收件人....

  3. ....准备发给第三个收件人。

  4. 设置 LOG_CONNECTION=3 将使 MTA 写入此条目。减号 (-) 表示此条目指外发连接。O 表示此条目对应于连接的开口。同时请注意尽管此开口由线程 2 和线程 3 来执行,但由于多线程的 TCP/IP 通道使用同一进程来处理这些不同的连接开口,因此此处的进程 ID 相同(均为 40a5)。

  5. 由于要连接到两个单独的远程系统,独立线程中的多线程 SMTP 客户端将打开与每个系统的连接—第一个显示在本条目中,第二个显示在 7 中。条目的此部分显示了发送和目标 IP 号以及端口号,并显示了初始主机名和通过 DNS 查找到的主机名。在 SMTP/initial-host/dns-host 子句中,请注意初始主机名和在初始主机名上执行 DNS MX 记录查找后所使用的主机名的显示:mailhub.sesta.com 显然是 hostb.sesta.com 的 MX 服务器。

  6. 多线程的 SMTP 客户端在单独的线程中(尽管进程相同)打开到第二系统的连接。

  7. 由于要连接到两个单独的远程系统,独立线程中的多线程 SMTP 客户端将打开与每个系统的连接—第二个显示在本条目中,第一个显示在上面的 5 中。条目的此部分显示了发送和目标 IP 号以及端口号,并显示了初始主机名和通过 DNS 查找到的主机名。在本示例中,系统 hosta.sesta.com 显然自己直接接收邮件。

  8. 除了产生特定的连接条目外,LOG_CONNECTION=3 还可将与连接相关的信息包含进常规邮件条目中,如此处所示。

  9. 设置 LOG_CONNECTION=3 将使 MTA 写入此条目。所有邮件(本示例中的 bobby 和 carl 邮件)出队列后,系统将关闭连接,如此条目中的 C 所表示。

  10. 由于完成了邮件(在本例中为 dave)的传送,因此连接 mailhub.sesta.com 关闭。


25.3.4.10 MTA 日志记录示例:入站连接日志记录

此示例说明了通过 LOG_CONNECTION=3 启用连接日志记录后外来 SMTP 邮件的日志输出。


示例 25–10 MTA 日志记录:入站连接日志记录


28-Feb-2007 11:50:59.10 tcp_local + O                  (1)
TCP|206.184.139.12|25|192.160.253.66|1244 SMTP         (2)

28-Feb-2007 11:51:15.12 tcp_local    ims-ms    EE 1 
service@siroe.com rfc822;adam@sesta.com adam@ims-ms-daemon 
THOR.SIROE.COM (THOR.SIROE.COM [192.160.253.66])       (3) 

28-Feb-2007 11:51:15.32 ims-ms                  D 1 
service@siroe.com rfc822;adam@sesta.com adam@ims-ms-daemon

28-Feb-2007 11:51:15.66 tcp_local + C                  (4)
TCP|206.184.139.12|25|192.160.253.66|1244 SMTP
  1. 远程系统打开一个连接。字符 O 表示此条目与打开连接有关;字符 + 表示此条目与外来连接有关。

  2. 显示用于连接的 IP 号和端口。在此条目中,接收系统(创建日志文件条目的系统)具有 IP 地址 206.184.139.12 并且将连接指向端口 25;发送系统具有 IP 地址 192.160.253.66 并从端口 1244 发送。

  3. 在将外来 TCP/IP 通道 (tcp_local) 的邮件加入 ims-ms 通道收件人队列的条目中,请注意由于启用了 LOG_CONNECTION=3 而包含了超过默认值范围的信息。特别是,发送系统在其 HELO 或 EHLO 行中声明的名称、在连接 IP 号上由 DNS 反向查找到的发送系统的名称,以及发送系统的 IP 地址均被记录下来;请参见第 12 章,配置通道定义行为。

  4. 关闭入站连接。字符 C 表示此条目与关闭连接有关;字符 + 表示此条目与外来连接有关。


25.3.5 启用分发程序调试

分发程序错误和调试输出(如果已启用)将被写入 MTA 日志目录中的 dispatcher.log 文件。在 msg-svr-base/config/dispatcher.cnf 文件中指定分发程序配置信息。安装时将创建一个默认的配置文件,可不必对其进行更改而直接使用。但是,如果出于安全性或性能原因需要修改默认配置文件,则可以通过编辑 dispatcher.cnf 文件来实现此操作。

表 25–5 分发程序调试位

位 

 

十六进制值 

十进制值 

用法 

 

x 00001 

基本服务分发程序主模块调试。 

x 00002 

附加服务分发程序主模块调试。 

x 00004 

服务分发程序配置文件日志记录。 

x 00008 

基本服务分发程序其他调试。 

x 00010 

16 

基本服务调试。 

x 00020 

32 

附加服务调试。 

x 00040 

64 

进程相关服务调试。 

x 00080 

128 

不使用。 

x 00100 

256 

基本服务分发程序和进程通信调试。 

x 00200 

512 

附加服务分发程序和进程通信调试。 

10 

x 00400 

1024 

软件包级别通信调试。 

11 

x 00800 

2048 

不使用。 

12 

x 01000 

4096 

基本工作进程调试。 

13 

x 02000 

8192 

附加工作进程调试。 

14 

x 04000 

16384 

附加工作进程调试,特别是连接切换。 

15 

x 08000 

32768 

不使用。 

16 

x 10000 

65536 

基本工作进程到服务分发程序 I/O 调试。 

17 

x 20000 

131072 

附加工作进程到服务分发程序 I/O 调试。 

20 

x 100000 

1048576 

基本统计信息调试。 

21 

x 200000 

2097152 

附加统计信息调试。 

24 

x 1000000 

16777216 

将 PORT_ACCESS 拒绝记录到 dispatcher.log 文件中。 

Procedure启用分发程序错误调试输出

  1. 编辑 dispatcher.cnf 文件。

  2. DEBUG 选项设置为 -1。

    您还可以设置逻辑变量或环境变量 IMTA_DISPATCHER_DEBUG (UNIX),它以十六进制将 32 位调试掩码定义为值 FFFFFFFF。上表介绍了每个位的含义。

Procedure设置分发程序参数 (Solaris)

分发程序配置文件中提供的分发程序服务将影响各种系统参数的要求。系统的堆大小 (datasize) 必须能够满足分发程序的线程堆栈使用。

  1. 要显示堆大小(即默认的 datasize),请使用以下命令之一:

    csh 命令:


    # limit
    

    ksh 命令:


    # ulimit -a
    

    Solaris 实用程序


    # sysdef
    
  2. 对每个分发程序服务计算 STACKSIZE*MAX_CONNS,然后把对每项服务计算的值相加。系统的堆大小必须至少是此数目的两倍。