| 3TGKB-0062 | |
|
Last Edited : |
29-06-06 |
|
Revision : |
1.0 |
Message Flow in Exchange 2003!
I don't normally do this but I have copied a Microsoft article verbatim from Microsoft at the following web address.
All apologies aside it is an excellent article on Message Flow as part of the Exchange Server Transport and Routing Guide
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:
• Routing engine
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.
• Message categorizer
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:
1.
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.
2.
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.
3.
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).
4.
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.
5.
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.
6.
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.
7.
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:
1.
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.
2.
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.
3.
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.
4.
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.
5.
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.
6.
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.
7.
The message is routed to the outbound connector's SMTP virtual server or to the
outbound SMTP virtual server that is responsible for delivery.
8.
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.
9.
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.
Regards
Matt Rowston
KB Keywords: Message flow, exchange, 2003, smtp, queue