Exchange 2003 SP2/2007: Address space ignored in SMTP Connector

exchange-2003exchange-2007smtp

MS and Postini (Google) are in a tizzy, and long story short, Microsoft was/has blocked Postini's IP block. I think it's been lifted again, but my workaround isn't working (see below).

I have a Small Business Server with Exchange 2003 SP2 on it and the default SMTP connector is setup to route mail through Postini as a smarthost. This works fine. Address space is:

* cost 1

Because of this blockage, I created another SMTP connector called "Microsoft Domains" set to use DNS to deliver mail for the entire organization. Under the address spaces, I have the following:

hotmail.com cost 1
msn.com cost 1

I have only one SMTP Virtual Server (the Default one) as a local bridgehead for both of these connectors; under Delivery -> Advanced the smarthost field is empty.

The issue is that my "Microsoft Domains" connector seems to be ignored — I sent a test email to my hotmail account and expected to see my WAN IP in the "Received By" field in the headers, but it's always from Postini's block (64.18.0.0/20). Further more, I'm still getting 5.3.3 bounce errors from Microsoft's mail servers when I send to the hotmail.com account, so it's definitely still going out Postini's smarthost:

5.5.0 smtp;550 SC-002 Mail rejected by Windows Live Hotmail for policy reasons. The mail server IP connecting to Windows Live Hotmail has exhibited namespace mining behavior.

The TechNet documentation implies that the connector with the most specificity will "win", but this doesn't seem to be the case:

The address space defines the mail addresses or domains for the e-mail messages that you want to route through a connector. For example, an address space of * (asterisk) encompasses all external domains—this connector is used to route all external e-mail. If you created a second connector with an address space of *.net, Exchange would route all mail sent to a domain with a .net extension through the second connector. This action occurs because Exchange selects the connector that has the most similar address space. This setting is configured on the Address tab of the SMTP connector's properties.

I've tried restarting the Exchange Routing Engine service but to no avail; I've tried changing the cost of the default connector to 5; I've also tried this on an SBS 2008 Exchange 2007 box, but no dice. Any ideas?

Best Answer

I'd tweak the costs myself:

"If you have multiple connectors, especially a connector that has a * in the address space (for sending email via your ISP) then you need to adjust the cost carefully. The wildcard SMTP connector with the * should have the highest cost, SMTP Connectors pointing to internal servers should have the lowest (so that they are used first). If you want to load balance the connectors then you can set multiple connectors at a cost of 1."

So I'd raise the cost of the postini connector to 2 so everything tries the Microsoft Domains connector first and then when it notices the specific address space goes to the postini connector.