X ….. 500 marks the spot

A recent SBS 2003 replacement project lead to a blast from the past. The SBS2003 server had suffered corruption as part of a Dell poweredge hardware issue. It was limping along providing file and mail services and as part of infrastructure improvements planned for the client – it was to be replaced with a virtualised SBS 2008 server. This lead to an export and the mail and file data which was subsequently transferred to the new server.

Then the problem appeared. Mail that had subsequently been delivered to the SBS server could not be responded to or forwarded.  When checked the messages had what appeared to be email addresses for the recipients relating to the previous 2003 SBS server from which they had been exported.

#550 5.1.1 RESOLVER.ADR.ExRecipNotFound; not found ##

was the type of information reported back by exchange where XXX was the previous domain and xxxxxxx.local was the current SBS domain.

This problem occurs because while the Outlook auto-complete cache stores SMTP addresses for e-mail sent to external addresses, it uses X.500 addresses for e-mail sent to addresses within the Exchange organisation. Even though we had given the user account all the old SMTP addresses, the old X.500 address which Outlook was sending to was missing, and this was causing Exchange to reject the messages.

The use of X.500 addresses goes back to before Exchange 2000, when previous versions of Exchange maintained their own LDAP directory.  Since Exchange 2000 the mailbox’s X.500 address has been stored in the legacyExchangeDN attribute in Active Directory.  The legacyExchangeDN value is set when a mailbox is created, and includes the name of the Exchange administrative group where the mailbox belongs.  LegacyExchangeDN values typically look like this:


/o=Organisation/ou=Administrative Group/cn= Recipients/cn=Username

if you’ve ever wondered why the Exchange 2007 admin group has the name FYDIBOHF23SPDLT,  it’s the text EXCHANGE12ROCKS, with all the characters shifted to the right by one!)

So adding a custom X500 address or each user in the format of


Where XXX is the old domain proved enough to allow all the old mails to be forwarded and replied to without issue.

When adding these addresses for each users – use the custom mailbox option – put the user name in in the default format for your recipient policy and use X500 for the address type