Problem
I recently worked on an issue where lists in SharePoint were enabled for incoming e-mail and created in Active Directory / Exchange using the “Directory Management Service. These new lists should be created as e-mail enabled contacts with an external e-mail target address in Exchange. However, after setting an e-mail address on a SharePoint list, these contact would never show up in Outlook or OWA.
Enabling incoming e-mail on a list:
The “Directory Management Service” will create contact with an external e-mail address in the destination OU.
However, when looking at this contact in Exchange, you will see it’s missing e-mail addresses. Also, the “Email Address Policy Enabled” is not set.
When looking at “All Contacts” in Outlook, this new contact will not be displayed.
Attempting to update the “All Contacts” address list, will allow using “Update-AddressList” from the Exchange Management Console, will force the contact to be displayed.
Now the new contact will be displayed.
However, when selecting the contact, there will be an error stating, “The recipient couldn’t be added. There is no email address”
To work around this issue, you can update the existing contact with an e-mail address that matches your Internal Exchange users.
However, when saving your changes and error stating, “The object must be upgraded to the current Exchange Version”.
Now the contact has the email address policy enabled.
After going through this process, the e-mail contact should be displayed in the address book and functional.
Cause
This issue occurs because SharePoint is creating the e-mail enabled contact with an incompatible object version, as a result the e-mail address policy cannot be applied.
Resolution
E-mail enabled objects that are created by the SharePoint Directory Management Service is not setting the “ExchangeVersion”, so it defaults to “0.0 (6.5.6500.0)”. However, when creating an e-mail enabled contact from within Exchange Management Tool, the “ExchangeVersion” is set to “0.20 (15.0.0.0)”.
To resolve this issue, we can “touch” each effected object based on the “ExchangeVersion” that is created by the SharePoint Directory Management Service.
To accomplish this, use “Set-contact” from the Exchange Management Shell to loop through all contacts that reside in the SharePoint OU (Organizational Unit).
For example, I used “SharePoint Groups” in my case.
Here is an example of the command based on my Organizational Unit.
Get-contact -organizationalunit “SharePoint Groups” | where {$_.Exchangeversion -like “0.0 *”} | Set-contact
This command will find all objects in the “SharePoint Groups” OU that have “0.0 *” set in the “Exchangeversion” property and update the object the current supported version.
After running this command all objects that were created by the SharePoint Directory Management Service and are not displayed in the address book will updated by the recipient update service and accessible by Outlook clients.