Sun Java System Messaging Server 6 2005Q4 管理指南

MTA 体系结构和邮件流概述

此部分简要概述了 MTA 体系结构和邮件流(图 8–2)。请注意,MTA 是一个非常复杂的组件,而此图只是对邮件通过该系统的简要说明。事实上,此图并不是所有流经该系统的邮件的非常准确的说明。但对于概念性的讨论,这已经足够了。

分发程序和 SMTP 服务器(从程序)

邮件通过 SMTP 会话从 Internet 或内部网进入 MTA。当 MTA 收到要求进行 SMTP 连接的请求时,MTA 分发程序(多线程连接分发代理)将执行一个程序 (tcp_smtp_server) 以处理 SMTP 会话。分发程序将为每个服务维护多线程进程池。请求其他会话时,分发程序将激活一个 SMTP 服务器程序以处理每个会话。分发程序的进程池中的进程可能会同时处理许多连接。分发程序和从程序将一起对每个外来邮件执行许多不同的功能。其中三个主要功能是:

有关更多信息,请参见分发程序

路由和地址重写

SMTP 服务器和许多其他通道(包括转换通道和再处理通道)均可将邮件加入队列。此传送阶段完成了许多任务,其中的主要任务是:

通道

通道是用于处理邮件的基本 MTA 组件。通道表示邮件与另一个系统的连接(例如,另一个 MTA、另一个通道或本地邮件存储)。邮件传入时,根据邮件的源和目的地,不同的邮件需要不同的路由和处理。例如,要传送到本地邮件存储的邮件与要传送到 Internet 的邮件以及要发送到邮件系统内的另一个 MTA 的邮件,将以不同的方式进行处理。通道提供了用于自定义每个连接所需的处理和路由的机制。在默认安装中,大多数邮件转至处理 Internet、内部网和本地邮件的通道。

也可以创建用于特定情况的专门通道。例如,假设某个 Internet 域处理邮件非常缓慢,导致发到此域的邮件阻塞了 MTA。便可以创建一个专门的通道对发到该慢速域的邮件提供特殊处理,从而消除此域中系统的障碍。

地址的域部分将确定邮件要排入哪个通道。用于读取域和确定正确通道的机制称为重写规则(请参见重写规则)。

通道通常由一个通道队列和一个通道处理程序(称为主程序)组成。从程序将邮件传送到适当的通道队列后,主程序将执行所需的处理和路由。通道和重写规则一样,都是在 imta.cnf 文件中指定和配置的。以下所示为一个通道条目的示例:


tcp_intranet smtp mx single_sys subdirs 20 noreverse maxjobs 7 SMTP_POOL
maytlsserver allowswitchchannel saslswitchchannel tcp_auth
tcp_intranet-daemon

此例中的第一个字 tcp_intranet 是通道名称。最后一个字称为通道标记。中间的字称为通道关键字,它们指定了将如何处理邮件。许多不同的关键字允许用许多方式处理邮件。第 12 章,配置通道定义中提供了对通道关键字的完整描述。

邮件传送

邮件经过处理后,主程序将邮件沿着邮件的传送路径发送到下一个停靠站。这可能是预期收件人的邮箱、另一个 MTA,甚至也可能是其他通道。虽然图中未显示,但转发到另一个通道的情况经常发生。

请注意,地址的本地部分和接收的字段通常是 7 位字符。如果 MTA 在这些字段中读到 8 位字符,它将把每个 8 位字符替换为星号。