Exchange and DSAccess
HiWe are running Exchange 2003 SP2 and AD 2003. Our mail/AD domain is domain.com. We have an SMTP connector to the Internet that points to Relay1, an SMTP relay.I had a query regarding the wayDSAccess works.I have noticed that if I add a secondary SMTP address to someone's Exchange E-Mail Address tab that has nothing to do with our domain (e.g. me@microsoft.com), then if if anyone sends an email to that address, it will get delivered to that user's mailbox, not head off to Microsoft. :)Does anyone know why this is? I guess it's because Exchange checks AD before sending the mail outside, but I was wondering of the exact process.My understanding is:When someone sends an email, their home Exchange server checks AD (using the DSAccess process) via a local GC (that was located via the DSProxy process). But what does Exchange actually check, whether this address is listed in AD? If so, how does it know where to route the mail? And how does this work with Bridgheads and Routing Groups?Also, if every time someone sent an email, Exchange checked all of Active Directory for the presence of any of the recipients, wouldn't this take a very long time to complete? :)
July 22nd, 2009 11:11pm

This article describes it in detail:http://www.msexchange.org/tutorials/Exchange-Server-2003-Mailflow-Part1.htmlThe message Categorizer is responsible for this behavior, which is by design. Mike Crowley A+, Network+, Security+, MCT, MCSE, MCTS, MCITP: Enterprise Administrator / Messaging Administrator
Free Windows Admin Tool Kit Click here and download it now
July 22nd, 2009 11:46pm

Exchange also does not look at each recipient for the presence of a potential match for an email address. instead it uses the address list service which already maintains this sort of thing. EDIT:to clarify, there is not a separate static list floating in AD. See below for a better explination :) Mike Crowley A+, Network+, Security+, MCT, MCSE, MCTS, MCITP: Enterprise Administrator / Messaging Administrator
July 22nd, 2009 11:49pm

Hi Mike,Could you expand on this comment:"Exchange also does not look at each recipient for the presence of a potential match for an email address. instead it uses the address list service which already maintains this sort of thing."I'm not sure I understand...(I read the link too). How does Exchange know (does this process have a name?) where to send an email when it is submitted? Is there some sort of process for checking Active Directory (or the GAL) for an existing entry? And how about if the mail was sent to someone's secondary SMTP address....this sort of information isn't held in the GAL is it?
Free Windows Admin Tool Kit Click here and download it now
July 23rd, 2009 1:07am

Yes. the GAL would contain all of a given user's SMTP addresses. Each Exchange recipient has a proxyaddress multi-valued attribute that list the addresses associated with the account.The Default Global Address List, which is created by the Exchange installation, uses the following query to create a list of valid recipients: (Alias -ne $null -and (ObjectClass -eq 'user' -or ObjectClass -eq 'contact' -or ObjectClass -eq 'msExchSystemMailbox' -or ObjectClass -eq 'msExchDynamicDistributionList' -or ObjectClass -eq 'group' -or ObjectClass -eq 'publicFolder')) The GAL object(s) itself is located in AD at:CN=Default Global Address List,CN=All Global Address Lists,CN=Address Lists Container,CN=Contoso,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=Contoso,DC=Com Mike Crowley A+, Network+, Security+, MCT, MCSE, MCTS, MCITP: Enterprise Administrator / Messaging Administrator
July 23rd, 2009 2:08am

Here is another good article: Understanding Internal Transport Components http://technet.microsoft.com/en-us/library/bb123830(EXCHG.65).aspx It applies to Exchange 2003, but much of the AD aspects are the same. Here is a quote: 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 Mike Crowley A+, Network+, Security+, MCT, MCSE, MCTS, MCITP: Enterprise Administrator / Messaging Administrator
Free Windows Admin Tool Kit Click here and download it now
July 23rd, 2009 2:10am

It looks like dsaccess.exe also has a configurable cache to ease the workload of the queries:http://technet.microsoft.com/en-us/library/aa998456(EXCHG.65).aspx. & http://technet.microsoft.com/en-us/library/aa998050(EXCHG.65).aspx Also looks like in 2007 this process is broken into two peices: Provider and Driver:http://blogs.msdn.com/douggowans/archive/2007/01/04/ad-integration-from-2003-to-2007.aspx Mike Crowley A+, Network+, Security+, MCT, MCSE, MCTS, MCITP: Enterprise Administrator / Messaging Administrator
July 23rd, 2009 2:23am

Thanks Mike - great links/explanations.So - back to my original query.If a user sends an email to me@microsoft.com (and that address is added as a secondary SMTP address to someone's account), that message gets delivered. Does this mean that Exchange checks either the DSAccess cache/check the directory directly/check the GALfor any present mail address before it sends it onto SMTP connectors etc? I'm still not 100% sure on that one?..and that is why the mail gets delivered to me@microsoft.com?
Free Windows Admin Tool Kit Click here and download it now
July 23rd, 2009 3:16am

I'm at the edge of my understanding on this topic, but yes (I believe so). :) Mike Crowley A+, Network+, Security+, MCT, MCSE, MCTS, MCITP: Enterprise Administrator / Messaging Administrator
July 23rd, 2009 3:57am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics