dan_computerx
asked on
Shared address space in Exchange 2007
Hi all,
I can't figure out how to have the correct address as the return
address in a shared address space setup with exchange 2007.
Long story follows...
I am transitioning from a unix mail server to Exchange. I would like
to do so slowly, one user at a time.
I am routing all mail into the unix server which then forwards
messages for specific users on to the Exchange server via SMTP. This
works well.
(I know that the recommended method of doing a shared address space is
to have the Exchange server receive messages first but the unix box
has much more flexible routing options and has a decent virus
scanner. I am pretty comfortable with it and I am less likely to
create a routing loop or do something equally stupid on the unix box
than I am on a Exchange server. If we need to we can put the Exchange
box first.)
I have read Q321721 but it is written for Exchange 2000/2003.
I am not familiar with Exchange 2007, this is my first 2007 install
and I have been out of the Exchange world for several years.
My Windows domain is a subdomain of the companies registered domain.
So the Exchange server is exchange.ad.company.com
I have created accepted domains in the "Hub Transport" area of
"Organization Configuration" thus
Name DomainName DomainType Default
---- ---------- ---------- -------
ad.company.com ad.company.com Authoritative True
*.company.com *.company.com ExternalRelay False
I have created a send connector thus that smart hosts everything to
the unix box:
Identity AddressSpaces Enabled
-------- ------------- -------
smarthost {smtp:*;1} True
Mailflow seems to work so far (I haven't tested a whole lot) but the
return address of messages sent from OWA are in the form
user@ad.company.com rather than user@company.com.
I can not make the change to the "Default Policy" of "Email Address
Policies" when company.com is set to "External Relay Domain" and I can
not set company.com to from "Authoritative" to "External Relay Domain"
when company.com is referenced in the default recipient policy.
I'm starting to think that I am going to be stuck using Method 2 from Q321721
but I am hoping to avoid that. I don't want to deal with all those extra
contacts. I am also aware that mailbox/contact handling has changed
considerably with 2007 and I am not sure that the listed technique will
work at all.
Just to make things more interesting... While doing one last test
before posting this it started working! Mail sent from OWA was going
as u...@company.com. I rebooted the Exchange server and now it is
back to u...@ad.company.com. Which brings me to question two. Is
there a way to dump the Exchange server's configuration to a human
readable form? Plain text would be best but XML would be fine too.
TIA,
Dan
I can't figure out how to have the correct address as the return
address in a shared address space setup with exchange 2007.
Long story follows...
I am transitioning from a unix mail server to Exchange. I would like
to do so slowly, one user at a time.
I am routing all mail into the unix server which then forwards
messages for specific users on to the Exchange server via SMTP. This
works well.
(I know that the recommended method of doing a shared address space is
to have the Exchange server receive messages first but the unix box
has much more flexible routing options and has a decent virus
scanner. I am pretty comfortable with it and I am less likely to
create a routing loop or do something equally stupid on the unix box
than I am on a Exchange server. If we need to we can put the Exchange
box first.)
I have read Q321721 but it is written for Exchange 2000/2003.
I am not familiar with Exchange 2007, this is my first 2007 install
and I have been out of the Exchange world for several years.
My Windows domain is a subdomain of the companies registered domain.
So the Exchange server is exchange.ad.company.com
I have created accepted domains in the "Hub Transport" area of
"Organization Configuration" thus
Name DomainName DomainType Default
---- ---------- ---------- -------
ad.company.com ad.company.com Authoritative True
*.company.com *.company.com ExternalRelay False
I have created a send connector thus that smart hosts everything to
the unix box:
Identity AddressSpaces Enabled
-------- ------------- -------
smarthost {smtp:*;1} True
Mailflow seems to work so far (I haven't tested a whole lot) but the
return address of messages sent from OWA are in the form
user@ad.company.com rather than user@company.com.
I can not make the change to the "Default Policy" of "Email Address
Policies" when company.com is set to "External Relay Domain" and I can
not set company.com to from "Authoritative" to "External Relay Domain"
when company.com is referenced in the default recipient policy.
I'm starting to think that I am going to be stuck using Method 2 from Q321721
but I am hoping to avoid that. I don't want to deal with all those extra
contacts. I am also aware that mailbox/contact handling has changed
considerably with 2007 and I am not sure that the listed technique will
work at all.
Just to make things more interesting... While doing one last test
before posting this it started working! Mail sent from OWA was going
as u...@company.com. I rebooted the Exchange server and now it is
back to u...@ad.company.com. Which brings me to question two. Is
there a way to dump the Exchange server's configuration to a human
readable form? Plain text would be best but XML would be fine too.
TIA,
Dan
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
There is an even easier way to do this, WITHOUT having to create the email addresses. Created your domain in accepted domains as an internal relay. Then create your email address policy with your shared domain as the primary (that's what you want right??). Now, go to the send connectors, create a new one with the domain as the address space. Specifiy how you want to route it (MX or straight to an IP) and you are good to go!
ASKER
My apologies if Experts-Exchange munges the text.
A summary:
1. Add the SMTP domain to the recipient policy.
2. Manualy set the NonAuthoritativeDomains via ADSI.
3. Create a SMTP send connector for the shared domain.
4. Create mail enabled contacts for each user still on the old system
Here is my edited version of Alan's instructions.
1. Add the shared SMTP domain to the Accepted Domain as Authoritative Domain.
2. Modify default email address policy to set the new added domain as Primay. On the Default Policy, ensure that the EnabledPrimarySMTPAddressT
get-emailaddresspolicy "Default Policy" -EnabledPrimarySMTPAddress
3. To ensure the change has taken place, look at the EmailAddresses on an internal account and verify that we see SMTP:alias@domain.com under the attribute emailaddresses by command:
get-mailbox <identity> | fl
You should have something like this (I have no idea what bits are actually important):
[PS] C:\>get-mailbox ExchangeUser | fl
Database : EXCHANGE\First Storage Group\Mailbox Database
<snip>
Alias : exchangeuser
DisplayName : Exchange User
EmailAddresses : {SMTP:exchangeuser@DOMAIN.
<snip>
EmailAddressPolicyEnabled : True
PrimarySmtpAddress : exchangeuser@DOMAIN.COM
<snip>
WindowsEmailAddress : exchangeuser@DOMAIN.COM
<snip>
4. Now we are going to set the NonAuthoritativeDomains attribute:
a. Open ADSIEdit.msc in the Exchange 12 forest.
b. Browse to CN=Configuration, CN=Services, CN=Microsoft Exchange, CN=(Your Org), CN=Recipient Policies
c. Right click on CN=Default Policy and go to Properties
d. Locate and click the msExchNonAuthoritativeDoma
e. Type @domain.com and click Add, OK, OK.
f. Verify that the change has taken place by the command:
get-emailaddresspolicy | fl . The NonAuthoritativeDomains attribute now shows {@DOMAIN.COM}
Here is mine:
[PS] C:\>get-emailaddresspolicy
RecipientFilter : Alias -ne $null
LdapRecipientFilter : (mailNickname=*)
LastUpdatedRecipientFilter
RecipientFilterApplied : True
IncludedRecipients : AllRecipients
<snip>
RecipientFilterType : Precanned
Priority : Lowest
EnabledPrimarySMTPAddressT
EnabledEmailAddressTemplat
DisabledEmailAddressTempla
Enabled : True
HasEmailAddressSetting : True
HasMailboxManagerSetting : False
NonAuthoritativeDomains : {smtp:@DOMAIN.COM}
AdminDescription :
MinAdminVersion : -2147453113
AdminDisplayName :
ExchangeVersion : 0.1 (8.0.535.0)
Name : Default Policy
DistinguishedName : CN=Default Policy,CN=Recipient Policies,CN=DOMAIN,CN=Micr
Identity : Default Policy
Guid : a5e28296-122d-43e9-bdac-c5
ObjectCategory : INTERNAL.DOMAIN.COM/Config
ObjectClass : {top, msExchGenericPolicy, msExchRecipientPolicy}
WhenChanged : 6/11/2007 12:38:31 PM
WhenCreated : 5/23/2007 12:53:47 PM
OriginatingServer : DC1.INTERNAL.DOMAIN.COM
IsValid : True
5. Restart the Microsoft Exchange Transport Service. I rebooted.
Note: Ensure that there is a send connector for the Remote Domain. Since I am paranoid I created one for DOMAIN.COM and another wildcard.
[PS] C:\>Get-SendConnector
Identity AddressSpaces Enabled
-------- ------------- -------
Joshua {smtp:DOMAIN.COM;1, smtp:*;1} True
I found on my own that I needed to create a contact for each user on the old system. It was a pain and I avoided it for as long as I could but eventually I gave in and did it. Essentailly I did method two from MSK 321721.
I did it using Import-CSV commandlet. I created a csv file in the format
Alias,ExternalEmailAddress
FLAST,flast@DOMAIN.COM,FIR
then ran the command:
Import-CSV MailContact.csv | foreach {New-MailContact -alias $_.alias -ExternalEmailAddress $_.ExternalEmailAddress -Name $_.Name -DisplayName $_.DisplayName -FirstName $_.FirstName -LastName $_.LastName -org INTERNAL.DOMAIN.COM\Users}
In retrospect I should have added more than the basic information.