How to send an Email using Email Template from CRM 2011 using C#


Top_bottom banner
//This post demonstrates how to send an email using a template from CRM 2011 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;
}
Please share |Like in Facebook if you feel like this page is useful.
Top_bottom banner
Advertisements

About Dynamics CRM Guru

We are a group of CRM Consultants and have significant experience in transforming businesses in the right way. We use this platform to share our knowledge which might help many others in the digital transformation journey. We are happy to help you if you are looking for any assistance in CRM implementation projects.

Posted on March 12, 2013, in Microsoft CRM 2011, MS CRM 2011 Training and tagged . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: