Hi Teh,
Before raising a ticket,
you could run SDK to try to add email entity to your solution manually to test whether it could work.
using Microsoft.Crm.Sdk.Messages;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Client;
using Microsoft.Xrm.Sdk.Messages;
using Microsoft.Xrm.Sdk.Metadata;
using Microsoft.Xrm.Sdk.Query;
using System;
using System.Diagnostics;
using System.Net;
using System.ServiceModel;
using System.ServiceModel.Description;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections.Generic;
using System.IO;
namespace ConnectionForD365
{
class Program
{
static void Main(string[] args)
{
connectToCRMByOrg();
}
public static void connectToCRMByOrg()
{
IOrganizationService organizationService = null;
try
{
String username = "";
String password = "";
String organizationUrl = "";
ClientCredentials clientCredentials = new ClientCredentials();
clientCredentials.UserName.UserName = username;
clientCredentials.UserName.Password = password;
// For Dynamics 365 Customer Engagement V9.X, set Security Protocol as TLS12
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
// Get the URL from CRM, Navigate to Settings -> Customizations -> Developer Resources
// Copy and Paste Organization Service Endpoint Address URL
Console.WriteLine("Please waiting for connection...");
organizationService = (IOrganizationService)new OrganizationServiceProxy(new Uri(organizationUrl),
null, clientCredentials, null);
if (organizationService != null)
{
Guid userid = ((WhoAmIResponse)organizationService.Execute(new WhoAmIRequest())).UserId;
if (userid != Guid.Empty)
{
Console.WriteLine("Connection Established Successfully...");
OrganizationServiceProxy _serviceProxy = (OrganizationServiceProxy)organizationService;
_serviceProxy.EnableProxyTypes();
RetrieveEntityRequest addEntity = new RetrieveEntityRequest()
{
LogicalName = "email"
};
RetrieveEntityResponse retrieveAddEntityResponse = (RetrieveEntityResponse)_serviceProxy.Execute(addEntity);
AddSolutionComponentRequest addReq = new AddSolutionComponentRequest()
{
ComponentType = 1,
ComponentId = (Guid)retrieveAddEntityResponse.EntityMetadata.MetadataId,
// replace it with your solution name
SolutionUniqueName = "testsolution"
};
_serviceProxy.Execute(addReq);
Console.WriteLine("OK");
}
}
else
{
Console.WriteLine("Failed to Established Connection!!!");
}
}
catch (Exception ex)
{
Console.WriteLine("Exception caught - " ex.Message);
}
}
}
}
Just create a new console app and import necessary Dynamics 365 SDK libraries,
then copy full code to run.(replace SolutionUniqueName parameter value with your owns)
Result:
I added Email entity into my "testsolution" with above code.

Please follow this tutorial for how to connect to your D365:
https://arunpotti.wordpress.com/2018/02/03/step-by-step-to-connect-dynamics-365-crm-online-v9-x-using-c-console-application/
If even code not works, then raise a tk for assistance.
Regards,
Clofly