Understanding Internal Transport Components
This topic provides detailed descriptions of the components that are involved in receiving and sending mail in Simple Mail Transfer Protocol (SMTP). In addition, this topic describes how these components perform in a typical mail flow process. The following are important components that are involved in mail transport:
The Microsoft® Exchange Routing engine, a service in the Default Exchange Services, is responsible for determining the least expensive available path for message delivery. It supplies this information to the advanced queuing engine as part of the message delivery process.
Advanced queuing engine
The advanced queuing engine is responsible for several aspects of message delivery. Specifically, the advanced queuing engine retrieves messages from SMTP or the Microsoft Exchange store driver, categorizes them, determines each message's destination, and then provides an interface to the multiple queues to which a message can be assigned while awaiting delivery.
The message categorizer is a component of the advanced queuing engine that sends Lightweight Directory Access Protocol (LDAP) queries to the global catalog server to perform directory lookups. These queries retrieve the following information:
The recipient e-mail addresses
The mailbox store on which a recipient mailbox resides
The Exchange server hosting that mailbox store
The following figure illustrates the transport components involved in mail flow. The shaded areas depict transport components.
Message flow through internal transport components
Receiving Internet Mail
Exchange relies on DNS, the SMTP protocol, the message categorizer, the advanced queuing engine, and the Exchange routing engine to receive Internet mail. The components perform the following tasks to deliver Internet mail to a user in an Exchange organization:
The sending SMTP server uses DNS to query for the preferred MX (mail exchanger) record of the destination domain or target server. DNS returns a list of A (host) records, which resolve to an Internet Protocol (IP) address or addresses of the server.
The sending SMTP server initiates a connection to port 25 of the destination SMTP server. The destination SMTP server is the SMTP virtual server located on the physical gateway server that is configured to accept incoming Internet mail for the domain to which the mail is addressed.
Ideally, the inbound SMTP server only accepts the incoming message if it is destined for an SMTP mail domain that is defined in a recipient policy (unless the server is open to relay, which is strongly discouraged).
When the message is accepted, the SMTP virtual server creates an envelope for the message—this message structure is called MAILMSG. MAILMSG contains all of the properties of the message, including the sender and recipient names.
The message categorizer makes an LDAP query to the global catalog server to find the homeMdb attribute of the recipient. The message categorizer then stamps the fully qualified domain name (FQDN) of this Exchange server on the MAILMSG object. The homeMdb attribute is the user's home mailbox server, which is the location where the user's mailbox store and mailbox reside.
One of two events occurs:
If the user's mailbox store is located on that Exchange server, the message categorizer marks the message for local delivery, and the advanced queuing engine transfers the message to the Exchange store driver. The Exchange store driver then delivers the message to the mailbox store.
If the user's mailbox store is not located on that Exchange server, the message categorizer transfers the message to the advanced queuing engine. The advanced queuing engine then calls the Exchange routing engine to determine the best way to send the message to the server (based on link state routing), and determines the next destination, or hop, in the route to the user's home server.
Finally, complete with destination information from the message categorizer and routing information from the routing engine, the advanced queuing engine sends the message to its final destination in one of the following ways:
If the destination is a local domain, the message is delivered to the SMTP virtual server located on the Exchange server where the user's mailbox resides. If the user's mailbox is in a remote routing group, the message may have to be sent through other connectors.
If the destination is outside of the Exchange organization, the message is delivered to the SMTP server for remote domains in a different remote queue. An incoming message will be sent to a remote domain only if one of the following configurations is applied:
- The Exchange server is open for relay.
- The user sending the message is authorized to relay.
- Another connector is configured that allows relaying to these domains.
- If the destination is a connector to another system or to an earlier version of Exchange, the Exchange store driver submits the mail to the message transfer agent (MTA).
Sending Internet Mail
To send Internet mail, Exchange relies on the same components that it relies upon for receiving Internet mail: DNS, the SMTP protocol, the message categorizer, the advanced queuing engine, and the Exchange routing engine. Internet mail is sent through Exchange in the following manner:
An internal user sends a message to a remote domain. The message is submitted on the Exchange server on which the user's mailbox resides.
The message is submitted to the advanced queuing engine in one of two ways:
If the message was sent using a Microsoft Office Outlook® Web Access or Outlook (MAPI) client, the Exchange store submits the message to the advanced queuing engine through the store driver.
If the message was sent using a Post Office Protocol (POP) or an Internet Mail Access Protocol (IMAP) client, SMTP passes the message to the advanced queuing engine.
The message categorizer then queries the global catalog server with the recipient address to find the user. If the recipient address is not in a recipient policy, or if a matching recipient with a proxy address does not exist (the recipient address will not be stored in Active Directory), the message categorizer determines that the message is bound for a remote domain.
The advanced queuing engine calls into the Exchange routing engine to determine the next destination, or hop, for a route to the address space that more closely matches the remote domain.
With this information, the server determines whether to send the message, to route it to the smart host, or to use an SMTP connector with the remote address space.
If there are multiple connectors or virtual servers that handle outbound mail, the advanced queuing engine determines the virtual server or connector with the address space that most closely matches the address space of the remote domain and any restrictions for that connector.
The message is routed to the outbound connector's SMTP virtual server or to the outbound SMTP virtual server that is responsible for delivery.
The SMTP virtual server located on the Exchange server that performs categorization then uses its metabase information for the route action attribute for the remote domain.
The SMTP virtual server on the Exchange server then performs one of two tasks:
Uses DNS to look up the IP address for the target domain and then attempts delivery of the message.
Forwards the message to a smart host that assumes responsibility for the DNS resolution and delivery.