- Server-Side Synchronization is a new feature in Microsoft Dynamics CRM 2013 that can remove the need to install and run the Email Router. When configuring Server-Side Synchronization, if you are not using SSL for the CRM website the following will not work:
- Saving email credentials in email server profiles and mailbox records
- Entering connections to servers that do not use SSL
This is not an issue in Microsoft Dynamics CRM Online because that uses SSL. In an on-premises deployment, you can disable the requirement to use SSL though this is only recommended for testing purposes. Using SSL prevents the tranmission of unencrypted passwords.
To disable the requirement a setting in the DeploymentProperties table in the MSCRM_CONFIG database must be changed. The recommended way to do this is using the PowerShell.
On the CRM server, start PowerShell and add the Microsoft Dynamics CRM cmdlets.add-pssnapin Microsoft.Crm.Powershell
To allow the use of credentials when not using SSL, run the following commands.
$itemSetting = new-object 'System.Collections.Generic.KeyValuePair[String,Object]' ("AllowCredentialsEntryViaInsecureChannels",1)
$configEntity= new-object "Microsoft.Xrm.Sdk.Deployment.ConfigurationEntity"
$configEntity.LogicalName = "Deployment"
$configEntity.Attributes=new-object "Microsoft.Xrm.Sdk.Deployment.AttributeCollection"
$configEntity.Attributes.Add($itemSetting)
set-CrmAdvancedSetting -Entity $configEntity
To allow the use of connections to servers that do not use SSL, run the following commands.
$itemSetting = new-object 'System.Collections.Generic.KeyValuePair[String,Object]' ("ECAllowNonSSLEmail",1)
$configEntity= new-object "Microsoft.Xrm.Sdk.Deployment.ConfigurationEntity"
$configEntity.LogicalName = "Deployment"
$configEntity.Attributes=new-object "Microsoft.Xrm.Sdk.Deployment.AttributeCollection"
$configEntity.Attributes.Add($itemSetting)
set-CrmAdvancedSetting -Entity $configEntity
To enforce the use of SSL, repeat the above commands replacing the 1 in the KeyValuePair line with a 0.