Neil McDonald's Dynamics 365 and Power Platform Blog

Dynamics 365 App for Outlook “Can’t connect to Exchange”

with 3 comments

The on-premise Dynamics 365 App for Outlook (version 9.1) stopped displaying the Track and Set Regarding buttons after “Legacy Exchange Tokens” were disabled for Exchange Online in October/November 2025 (see here). The message “Can’t connect to Exchange” is displayed instead.

To fix this, we need to use the Graph API to authorise the app for Exchange Online, and update the server application files.

Step 1: Create an App registration in Entra

Log into https://entra.microsoft.com/ for the Exchange tenant as an administrator
Navigate to App registrations and click New registration


Set Name to ‘Dynamics Outlook App’
Set Support account type to the Single tenant option
Set Redirect URI to Single-page application (SPA) and the URL to https://your_org_url/crmmailapp/msalAuth.html

Click Register at the bottom of the page

Note the Application (client) ID and Directory (tenant) ID for later

Navigate to API permissions and click Add a permission

Select Microsoft Graph, then Delegated permissions

Select the permissions Mail.ReadWrite, Mail.ReadWrite.Shared, Calendars.ReadWrite and Calendars.ReadWrite.Shared, then click Add permissions

Click Grant admin consent

On the Authentication tab, select Access Tokens and ID tokens, then click Save

Note the Client ID and Tenant ID from the Overview tab for the next step

Step 2: Install the managed solution into the Dynamics organisation

Download the managed solution from here, then install it into the affected organisation. The solution contains a new entity called ‘mailapp_setting’.

Once installed, navigate to https://your_org_url/main.aspx?pagetype=entitylist&etn=mailapp_setting

Add 2 new records:
Name: graph_appid
Setting value: The Application (client) ID noted from Entra

Name: azure_tenantid
Setting value: The Tenant ID noted from Entra

Add read permission to the new MailApp Settings entity to all users via Security Roles. (I added it to the Dynamics app for outlook role which we assign to all users using the app) and full permissions to other admin users

Step 3: Replace the crmmailapp files on the Dynamics servers

On the CRM server(s), backup the folder C:\Program Files\Dynamics 365\CRMWeb\crmmailapp

Download crmmailapp-updated.zip from here

Delete the contents of C:\Program Files\Dynamics 365\CRMWeb\crmmailapp

Copy the contents of crmmailapp-updated.zip to the C:\Program Files\Dynamics 365\CRMWeb\crmmailapp folder

Step 4: Test

Clear browser cache or open an incognito window to test the Outlook app

If working correctly, you should be prompted to sign into Dynamics, then Office 365 and the Track and Set Regarding buttons will be available again.

Note: We may need to copy the original contents of crmmailapp back before running future update rollups, so keep the backup safe.

Written by neilmcd

Nov 20, 2025 at 5:07 pm

Posted in Misc

Tagged with , , ,

Dynamics 365 Outlook Client Not Rendering Views After September 2018 Update

with one comment

The 5th September 2018 Office 365 update has stopped the Dynamics 365 Outlook client from rendering views.

2018-09-10_11-59-11

This is not resolved by the ‘EnableRoamingFolderHomepages’ registry key that fixed a similar issue after the October update.

To get it working again, you’ll need to roll back to the previous update, then turn off automatic updates until it is resolved:

See the edit at the bottom for a better workaround!

Rollback the update

To roll back to the previous update, run the below from a command prompt
Read the rest of this entry »

Written by neilmcd

Sep 10, 2018 at 12:21 pm

Posted in Dynamics 365, Misc

Tagged with ,

Silverlight no longer works in Chrome 42

leave a comment »

In Google’s continuing effort to annoy me, starting with Chrome version 42, the Silverlight plugin no longer works. This is due to Google no longer supporting NPAPI plugins (see here).

To get around it until September 2015, you can use the below fix to re-enable NPAPI.

1. Type the below into the Chrome address bar and press enter: –
chrome://flags/#enable-npapi

2. Click on ‘Enable’ under ‘Enable NPAPI’

image001

3. Click on ‘Relaunch Now’ when it appears towards the bottom of the screen

image002

You’ve now got until September to re-write your Silverlight controls in a compatible technology. Good luck!

Written by neilmcd

Apr 21, 2015 at 8:52 am

Posted in Misc

Tagged with , , , ,

CRM Outlook Client Spell Check

leave a comment »

Recently, a customer has found that spell checking is not available when typing into forms on the CRM Outlook client. Spell checking is built into Internet Explorer and works fine on the web client, so I wanted to find a way to get it working in Outlook.

spell1

Using this MSDN article, I found that adding a registry key may help. After some trial and error, the following key and value had the desired effect. Read the rest of this entry »

Written by neilmcd

Jan 27, 2015 at 4:21 pm

Chrome 37 breaks CRM 2011 and 2013 functionality

with 22 comments

Google has removed a number of APIs from Chrome 37 which is causing a lot of issues with CRM 2011 and CRM 2013. So far I’ve noticed: –

  • You can no longer add options to Option Set fields via customisation
  • Changes made to an email in a workflow are not saved when the save button is clicked
  • The ‘Upload’ button on the SharePoint list component no longer works
  • Anything using the ‘window.showModalDialog’ function no longer works as the API has been deprecated
  • Can no longer save field properties such as ‘Visible by default’
  • Export to Excel no longer works

In order to fix the problem until Microsoft issue a real fix, you can re-enable the deprecated features by following the below: – Read the rest of this entry »

Written by neilmcd

Sep 8, 2014 at 1:35 pm

Posted in CRM 2011, Misc

Tagged with , ,

Microsoft Dynamics CRM 2013 Installation

with one comment

Microsoft Dynamics CRM 2013 was made available for download earlier today. You can grab it from here if you’d like to try it out. Also, you can get the official implementation guides from here.

Since my CRM 2011 setup video proved quite popular, I thought I’d take the opportunity to record an updated version for 2013 while I setup my own development environment.

The video is embedded below, but I recommend watching it on YouTube in HD quality, otherwise some of the text can be quite hard to read.

I hope that you find it useful!

Written by neilmcd

Oct 8, 2013 at 10:51 pm

Posted in CRM 2013

Tagged with , , , , ,

Cross Browser Support For Calling Workflow Via Ribbon Buttons

leave a comment »

For some time now, I’ve been using ribbon buttons to call various workflows, both from open records and subgrids. There’s a good guide here on how to do this, but like most guides, they were written before update rollup 12 was released. Since cross-browser support was introduced in UR12, I’ve found that the ribbon buttons do not work unless I’m using Internet Explorer.

After looking at the JavaScript code again, I could see why it was failing (snippet below)

var xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
Xrm.Page.context.getAuthenticationHeader() +
"<soap:Body>" +
"<Execute xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" +
"<Request xsi:type=\"ExecuteWorkflowRequest\">" +
"<EntityId>" + guid + "</EntityId>" + //entity record ID
"<WorkflowId>" + workflowId + "</WorkflowId>" + //WorkflowId - guid of the workflow
"</Request>" +
"</Execute>" +
"</soap:Body>" +
"</soap:Envelope>";

var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
xmlHttpRequest.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
xmlHttpRequest.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/crm/2007/WebServices/Execute");
xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xmlHttpRequest.send(xml);

The XMLHttpRequest is being created using ActiveX, which is only supported by Internet Explorer.

Simply changing the affected code to the below has fixed the issue and it now works across all browsers.

var xmlHttpRequest = new XMLHttpRequest();
xmlHttpRequest.open("POST", "/mscrmservices/2007/CrmService.asmx", false);

Note: The change on the second line may not be obvious, but .open has been changed to use a lower case O

Written by neilmcd

Mar 27, 2013 at 5:17 pm

Reducing Bandwidth Requirements Via Compression

leave a comment »

I’ve been looking at ways to try to increase the performance of our CRM infrastructure recently. I followed this Technet Optimisation guide some time ago, but thought it was worth a revisit. The tips here were great when I first configured our CRM environment, but that was almost 2 years ago now!

One thing which jumped out at me was the ‘Using Compression Techniques’ section. I remember following this in the past, but the section on ‘Dynamic Compression’ jumped out at me, as I don’t recall following before. It specifically talks about compressing responses sent to SDK clients such as the Outlook client. Standard HTTP compression does not do this, so since a lot of my our users use the Outlook client, I gave it a go.

Both the command line and GUI steps can be found in the Technet article, but here are the IIS 7.5 steps which I followed to enable it: –

  1. In Internet Information Services Manager, click the <Server name>, scroll down in the Features View to the Management section, and then start the Configuration Editor.
    comp-1 Read the rest of this entry »

Written by neilmcd

Feb 19, 2013 at 5:49 pm

Posted in CRM 2011

Tagged with , , ,

Moved to WordPress

leave a comment »

Unfortunately, Posterous is closing down, so I’ve transferred my blog to WordPress.

Some of the SQL and JavaScript formatting got lost during the transfer, so I’m currently in the process of checking it all over. If you find anything not working, leave a comment and I’ll get it fixed.

Thanks!

Written by neilmcd

Feb 16, 2013 at 6:31 pm

Posted in Misc

Tagged with ,