Before we discuss how messages are routed within the same group or between groups, it might be useful to have a basic understanding of how messages are transferred internally within an Exhange2000 server. Knowing how messages arrive in an outbound SMTP queue, for example, will help complete the overall routing picture that will be presented in the next several pages.
Messages can flow into an Exchange 2000 server in one of three ways. The first is through the SMTP service. An example of this type of message is Internet email. The second is through a store submission, such as a message created by a Microsoft Outlook (MAPI) client or an Outlook Web Access (OWA) client. The third way is for the message to come in via the Message Transfer Agent (MTA). Messages arrive in this way via an X.400 connector from a foreign e-mail system or via any Exchange Development Kit (EDK) -based connector.
As Figure 3-3 shows, SMTP messages are first sent to the NTFS queue because not all messages coming in from SMTP are destined for the local Exchange store. Thereafter, SMTP messages are sent to the precategorization queue for further processing.
Figure 3-3. Internal transport architecture for Exchange 2000 Server.
Messages submitted via either a store submission or the MTA are dropped into the Exchange store driver. The Exchange store driver picks up these messages and passes them to the precategorization queue. The precategorization queue is the first opportunity you have to fire your event sinks. Event sinks are scripts that can be run against the message to perform certain functions, such as adding a disclaimer or running an antivirus program.
The message is then passed to the message categorizer, which is essentially a collection of event sinks that perform address resolution on both the originator and recipient of the message. In addition, it retrieves attributes from Active Directory that apply to the message, such as the originator's or recipient's size limits for outgoing and incoming messages, delivery restrictions, forwarding specifications, and other settings that might restrict the message in some way. Any restrictions that do exist are applied to the message. Once these tasks have been accomplished, the message is placed into a postcategorization queue, which allows more event sinks to fire on the message if you choose to set them up.
After the message is processed in the postcategorization queue, it is given to the routing engine, which parses the destination address against its domain mapping and domain configuration table. The routing engine then decides whether the message is destined for the local store, or if a temporary outbound queue (called a destination message queue) should be created to pass the message to another SMTP server.
Destination message queues are created based on the destination domain name. The advanced queuing engine is able to create as many destination message queues as needed. From these queues, the SMTP service reads the message out of the queue and then passes the message to the next SMTP server. If the message is destined for the local store, it is placed in the local delivery queue. The Store.exe process then reads the message out of the queue and writes it to the local database. Thereafter, the message is associated with the destination mailbox, and the recipient is notified that new mail has arrived.
NOTE
The SMTP service comprises two components: the protocol stack and the advanced queuing engine (AQE). The AQE makes up the majority of the SMTP service and manages the passing of messages through the queues from the time they enter the transport core until the time they are placed in an outbound queue or delivered to the Exchange store driver. Thus, even though the AQE isn't depicted in Figure 3-3, it is the managing component that works behind the scenes to move message through the transport core.
When Exchange 2000 Server determines that the recipient of a message is on the same server as the sender, it delivers the message to the recipient's Inbox. The steps involved, shown in Figure 3-4, are as follows:
Figure 3-4. How Exchange 2000 Server routes a message to a recipient from a sender housed on the same server.
Messages sent between servers in the same routing group use SMTP as their transport. The steps involved in routing a message between two servers in the same routing group, shown in Figure 3-5, are as follows:
Figure 3-5. How Exchange 2000 Server routes a message to a recipient on another server.
Messages routed to servers in other routing groups must pass through a bridgehead server (BHS) at each end of the connector. The steps involved in routing messages to servers in different routing groups, shown in Figure 3-6, are as follows:
Figure 3-6. How Exchange 2000 Server routes a message to a recipient in another routing group.
Messages are routed to foreign e-mail systems over the X.400 connector if it is a direct, continuous connection. Otherwise, they are routed over the Internet via SMTP. Here are the steps involved in routing messages to another e-mail system when using SMTP:
If the message is being routed to a foreign e-mail system over an X.400 connector, these steps are essentially the same as routing over SMTP, except that an X.400 connector is used and no port number is involved.
Figure 3-7. How Exchange 2000 Server routes a message to a recipient in a foreign email system over SMTP.