Exchange 2003 – how to route ALL mail (including internal) via an external SMTP gateway? (Or, domain/mail server migration for the masses.)

exchange-2003forwardinggatewaysmtp

Short version: Is there a way to have Exchange route all email, including internal AD users that would normally be routed directly, through an external gateway? (SMTP, probably a "Smart Host" in exchange nomenclature.)

Longer version:
I'm not an email expert/admin/orevencompetent. Inherited an exchange 2003 server, migrating to web-based SaaS provider. To add to the fun, we're also (forced by deadlines) transitioning domains. What we (my boss) wants is any email sent to the new domain to have a copy sent to both domains. Getting mail sent to the new domain/provider to then be copied/forwarded to our old domain/exchange is easy. But we want mail sent from the old domain to the old domain to get sent to the new domain as well.

However: If we route all outgoing exchange mail through the new provider gateway, w/ the new domain forwarding to the old, we'd get an email loop. The "solution" desired is for an exchange user that sends to another exchange user to still be sent via the external gateway, which would in turn be sent to the new domain, and copied/forwarded back to the old domain. Is it possible?

A bit of a strange request I'm sure. And I expect that what we're attempting to do is DoingItWrong(tm). Any better ideas?

Best Answer

Howewer you configure it, Exchange is not going to route a message outside the organization if the destination address belongs to someone in Active Directory. Whenever Exchange needs to route a message, the first step it tries is always to look for the destination address in AD, and only after this fails it will choose a proper external routing path, based on the connectors you define.

With Exchange 2007 you can have "shared" SMTP domains, i.e. domains for which some addresses may be managed by Exchange, and some other by another system (in a coexistence scenario); I don't know if/how this is possible with 2003, but even if it was, the above stated golden rule still applies: first thing first, Exchange will try to deliver the message internally, and only if it can't, it will send the message outbound.

Think about it: if there was a way to do what you ask, what would Exchange do when receiving a message for a given user (even if it was already being forwarded by your provider)? It would route it back to your provider. There is no way to route messages based on who sends them, only on their destination; and the destination would be the same when the message is coming from Exchange itself, or when is coming from outside: if your wish could come true, you'd be stuck in a mail loop.