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?
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.
I would suggest:
Point the mx record for domain.com as well as newdomain.com to your hosting provider, and configure pop for each account.
Use popbeamer to download email for each account back into your local exchange system.
Change everyones email address in Exchange, and create contacts for them (that sends email to both addresses). Hide the original people, leaving only contacts displaying in Active Directory's Catalog that is provided to Outlook.
ie.. [email protected] becomes [email protected], and and alias is setup that sends [email protected] to [email protected] as well as [email protected]
Is there a reason you are putting yourself through the hell of trying to maintain two email systems concurrently like this?
If you have MAPI clients like Outlook, there isn't a great way to do it (if you have only OWA/SMTP, you could have that on a separate server and have its local config (not the organization level smarthost in the Exchange tools) send SMTP through a smarthost.
Hopefully this isn't too late. Reversing things a bit could you instead have all mail to for the new domain route through Exchange first, and have an alternate domain work too on that new system (newsystem.newdomain.com)? For example if you have newdomain.com mail reach Exchange. You'd then want to script a contact for [email protected], add that object dn to the altRecipient attribute for [email protected], set deliverAndRedirect, and add smtp:[email protected] to proxyAddresses. When it's time to cut over completely, change the newdomain.com routing to go direct and then shut off the Exchange side. Not optimal, but Exchange 2003 didn't even convert to SMTP on intra-server messages, thus not being able to send those connections elsewhere.
OK, I may be missing something but here's what I think. This is similar to what SirStan has suggested but my approach eliminates the existing Exchange server from the equation altogether:
Have email for both domains go to the new provider and leave it there. Point the MX records for the old and the new domains to the new server and reconfigure Outlook for each user to POP to the new server to get email sent to either domain.
If needed the users can set up rules in Outlook to move messages sent to either domain to different folders to keep them separate. Also, if the users need to be able to send as either domain, you can configure 2 POP accounts in each Outlook profile to POP to the same mailbox at the new provider. You can configure Outlook to leave a copy of the messages on the server. Each user will get a copy of each email in both POP accounts which might get klugey but it will give them the ability to send as johndoe@old_domain.com and johndoe@new_domain.com.
You'll lose the ability to use your internal GAL and you'll lose the ability to view other users mailboxes and Public Folders but you're probably going to lose those with the new provider anyway.
There are a couple of other ways I can think of to accomplish your objective but this seems like the most straightforward approach to me.