/This post demonstrates how to send an email using a template from CRM using C# code
//There are 4 steps in achieving this:
(a) Create the ‘From:’ activity party for the email
(b) Create the ‘To:’ activity party for the email
(c) Create an e-mail message
(d) Create the request to send email
//Namespace need to include
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;
using Microsoft.Xrm.Sdk.Discovery;
using Microsoft.Xrm.Sdk.Messages;
using Microsoft.Xrm.Sdk.Client;
using Microsoft.Crm.Sdk.Messages;
//(a)Create the ‘From:’ activity party for the email
ActivityParty fromParty = new ActivityParty
{
PartyId = new EntityReference(SystemUser.EntityLogicalName, _userId)
};
//(b)Create the ‘To:’ activity party for the email
ActivityParty toParty = new ActivityParty
{
PartyId = new EntityReference(Contact.EntityLogicalName, _contactId)
};
//(c)Create an e-mail message
Email email = new Email
{
To = new ActivityParty[] { toParty },
From = new ActivityParty[] { fromParty },
Subject = “e-mail”,
Description = “SendEmailFromTemplate Message.”,
DirectionCode = true
};
// (d)Create the request to send email
SendEmailFromTemplateRequest emailUsingTemplateReq = new SendEmailFromTemplateRequest
{
Target = email,
// Use a built-in Email Template of type “contact”.
TemplateId = new Guid(“07B94C1D-C85F-492F-B120-F0A743C540E6”),
// The regarding Id is required, and must be of the same type as the Email Template.
RegardingId = _contactId,
RegardingType = Contact.EntityLogicalName
};
SendEmailFromTemplateResponse emailUsingTemplateResp = (SendEmailFromTemplateResponse)_serviceProxy.Execute(emailUsingTemplateReq);
Guid _emailId = emailUsingTemplateResp.Id;
//#########################################################################
//Here is the Complete Code
using (OrganizationServiceProxy _serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri,
serverConfig.HomeRealmUri,
serverConfig.Credentials,
serverConfig.DeviceCredentials))
{
_serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
Guid _contactId = new Guid(“<Contact Record GUID>”);
WhoAmIRequest systemUserRequest = new WhoAmIRequest();
WhoAmIResponse systemUserResponse = (WhoAmIResponse)_serviceProxy.Execute(systemUserRequest);
Guid _userId = systemUserResponse.UserId;
// Create the ‘From:’ activity party for the email
ActivityParty fromParty = new ActivityParty
{
PartyId = new EntityReference(SystemUser.EntityLogicalName, _userId)
};
// Create the ‘To:’ activity party for the email
ActivityParty toParty = new ActivityParty
{
PartyId = new EntityReference(Contact.EntityLogicalName, _contactId)
};
// Create an e-mail message.
Email email = new Email
{
To = new ActivityParty[] { toParty },
From = new ActivityParty[] { fromParty },
Subject = “e-mail”,
Description = “SendEmailFromTemplate Message.”,
DirectionCode = true
};
// Create the request to send email
SendEmailFromTemplateRequest emailUsingTemplateReq = new SendEmailFromTemplateRequest
{
Target = email,
// Use a built-in Email Template of type “contact”.
TemplateId = new Guid(“<Template GUID>”),
// The regarding Id is required, and must be of the same type as the Email Template.
RegardingId = _contactId,
RegardingType = Contact.EntityLogicalName
};
SendEmailFromTemplateResponse emailUsingTemplateResp = (SendEmailFromTemplateResponse)_serviceProxy.Execute(emailUsingTemplateReq);
Guid _emailId = emailUsingTemplateResp.Id;
}
No comments:
Post a Comment