Sun Java System Messaging Server 6.3 管理指南

循环导致的 .HELD 邮件

邮件在服务器或通道之间的来回传送称为循环。通常,出现邮件循环是因为每个服务器或通道认为另一个服务器或通道负责邮件的传送。循环邮件通常有大量的 *Received: 标题行。Received: 标题行将说明邮件循环的准确路径。 请仔细查看这些标题行中显示的主机名和所有收件人地址信息(例如,for recipient 子句或 (ORCPT recipient) 注释)。 导致这种邮件循环的原因之一是用户错误。

例如,最终用户可能设置了在两个独立的邮件主机上相互转发邮件的选项。在用户的 sesta.com 帐户上,最终用户启用了将邮件转发至其 varrius.com 帐户的设置。而用户忘记了已启用此设置,又在其 varrius.com 帐户上将邮件转发设置到 sesta.com 帐户。

错误的 MTA 配置也会导致出现循环。例如,MTA 主机 X 认为 mail.sesta.com 的邮件应由主机 Y 处理。而主机 Y 认为主机 X 应该处理 mail.sesta.com 的邮件;结果是主机 Y 将邮件返回到主机 X。

在这些情况下,MTA 忽略了邮件,而未尝试进一步的传送。出现此类问题时,请查看邮件中的标题行以确定退回邮件的服务器或通道。根据需要修复条目。

另一个导致邮件循环的常见原因是,MTA 使用某个网络名接收发送给 MTA 主机的邮件,而 MTA 没有将该网络名识别(尚未配置为识别)为其自身名称中的一个。解决方案是将额外的名称添加到其中的名称被 MTA 识别为自身名称的列表中。请注意,MTA 用来确定邮件是否正在循环的阈值是可以配置的;请参见 MAX_*RECEIVED_LINES option.dat 选项(《Sun Java System Messaging Server 6.3 Administration Reference》中的“Option File Format and Available Options”)。同时请注意, MTA 可以配置为(请参见 HELD_SNDOPR 全局 MTA 选项)只要邮件由于超出此阈值而被强制设置为 .HELD 状态,就生成一则系统日志通知。如果收到 Received count exceeded; message held. 系统日志邮件,就说明发生了邮件循环。

您也可以通过运行《Sun Java System Messaging Server 6.3 Administration Reference》中的“release”或按照以下步骤来重新发送 .HELD 邮件。

  1. 将 .HELD 扩展名将 .HELD 扩展名重命名为除 00 以外的任何 2 位数。例如,将 .HELD 重命名为 .06。


    注 –

    在重命名在重命名 .HELD 文件前,请确保邮件已停止循环。


  2. 运行 imsimta cache -sync。运行此命令将更新高速缓存。

  3. 运行 imsimta submit channelimsimta run channel

邮件可能会被再次标记为 .HELD,所以有必要多次执行这些步骤,因为 Received: 标题行会累积。如果仍存在问题,将像以前一样在同一通道下重新创建 *.HELD 文件。如果问题已经解决,则邮件将出队列并被传送。

如果您决定只是删除邮件而不尝试传送它们,请参见《Sun Java System Messaging Server 6.3 Administration Reference》中的“clean”