This post demonstrates how to send an email 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

 

//Namespaces 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 = “SendEmail Message.”,

DirectionCode = true

};

 

//(d) Create the request to send email

SendEmailRequest sendEmailreq = new SendEmailRequest

{

EmailId = _emailId,

TrackingToken = “”,

IssueSend = true

};

 

SendEmailResponse sendEmailresp = (SendEmailResponse)_serviceProxy.Execute(sendEmailreq);

 

//#########################################################################################

Top_bottom banner

//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 ID>”);

 

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 = “SendEmail Message.”,

DirectionCode = true

};

Guid _emailId = _serviceProxy.Create(email);

 

// Use the SendEmail message to send an e-mail message.

SendEmailRequest sendEmailreq = new SendEmailRequest

{

EmailId = _emailId,

TrackingToken = “”,

IssueSend = true

};

 

SendEmailResponse sendEmailresp = (SendEmailResponse)_serviceProxy.Execute(sendEmailreq);

}

Please share |Like in Facebook if you feel like this page is useful.

Top_bottom banner

Advertisements