Hi Ashwini,
Please refer below code for your reference:
string emailTemplate = "Email template name here";
FilterExpression filter = new FilterExpression();
ConditionExpression conditionTitle = new ConditionExpression();
ConditionExpression conditionType = new ConditionExpression();
QueryExpression query = new QueryExpression();
conditionTitle.AttributeName = "title";
conditionTitle.Operator = ConditionOperator.Equal;
conditionTitle.Values.Add(emailTemplate);
conditionType.AttributeName = "templatetypecode";
conditionType.Operator = ConditionOperator.Equal;
conditionType.Values.Add("systemuser");
filter.FilterOperator = LogicalOperator.And;
filter.Conditions.Add(conditionTitle);
filter.Conditions.Add(conditionType);
query.Criteria = filter;
query.ColumnSet = new ColumnSet();
query.EntityName = "template";
query.ColumnSet.Columns.Add("templateid");
query.ColumnSet.Columns.Add("subject");
query.ColumnSet.Columns.Add("title");
EntityCollection templateCollection = service.RetrieveMultiple(query);
tracingService.Trace("templateCollection retrived ... " + templateCollection.Entities.Count.ToString() + Environment.NewLine);
Guid templateId = (templateCollection.Entities.Count > 0) ? (Guid)templateCollection[0].Id : Guid.Empty;
Entity template = new Entity();
InstantiateTemplateRequest request = new InstantiateTemplateRequest();
request.RequestName = "InstantiateTemplate";
request["TemplateId"] = templateId;
request["ObjectId"] = userId;
request["ObjectType"] = "systemuser";
InstantiateTemplateResponse response = (InstantiateTemplateResponse)service.Execute(request);
EntityCollection templateCollectionnew = (EntityCollection)response["EntityCollection"];
tracingService.Trace("templateCollectionnew retrived ... " + templateCollectionnew.Entities.Count.ToString() + Environment.NewLine);
Entity fromParty = new Entity("activityparty");
fromParty["partyid"] = new EntityReference("systemuser", userId);
EntityCollection collToParty = new EntityCollection();
Entity User = service.Retrieve("systemuser", userId, new ColumnSet("internalemailaddress"));
Entity toParty = new Entity("activityparty");
string EmailAddress = User.Attributes.Contains("internalemailaddress") ? (string)User.Attributes["internalemailaddress"] : string.Empty;
if (EmailAddress != string.Empty)
{
toParty["addressused"] = EmailAddress;
toParty["partyid"] = new EntityReference("systemuser", User.Id);
toPartyArray.Add(toParty);
}
collToParty.Entities.Add(toParty);
Entity Email = new Entity("email");
Email.Attributes["from"] = new Entity[] { fromParty };
Email.Attributes.Add("to", collToParty);
Email.Attributes["subject"] = subject;
Email.Attributes["regardingobjectid"] = new EntityReference("incident", Complaint.Id);
Email.Attributes["description"] = description;
Email.Attributes["ownerid"] = new EntityReference("systemuser", userId);
Guid NewEmail = service.Create(Email);