Sun Java System Messaging Server 6.3 管理指南

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 地址。