// Create an email message.
CrmSdk.email email = new email();
// Set email properties
string[] sOwnerGuids= OwnerGuid.Split(';');
int i = 0;
//If you more than 1 TO: Create an activity party array for the email
activityparty[] partyTo = new activityparty[sOwnerGuids.Length];
foreach (string sGuid in sOwnerGuids)
{
partyTo[i] = new activityparty();
partyTo[i].partyid= new Lookup();
partyTo[i].partyid.type = EntityName.systemuser.ToString();
partyTo[i].partyid.Value = new Guid(sGuid); //new Guid(OwnerGuid);
i = i + 1;
}
//If you have single TO : Create an activity party for the email
//activityparty partyTo = new activityparty();
//partyTo.partyid = new Lookup();
//partyTo.partyid.type = EntityName.systemuser.ToString();
//partyTo.partyid.Value = new Guid[] { OwnerGuid }; //new Guid(OwnerGuid);
email.to = partyTo; //new activityparty[] { partyTo };
activityparty partyFrom = new activityparty();
partyFrom.partyid = new Lookup();
partyFrom.partyid.type = EntityName.systemuser.ToString();
partyFrom.partyid.Value = new Guid(System.Configuration.ConfigurationSettings.AppSettings["CrmAdminGuid"].ToString());
email.from = new activityparty[] { partyFrom };
email.subject = emailSubject;
email.description = emailBody;
email.regardingobjectid = new Lookup();
email.regardingobjectid.type = EntityName.opportunity.ToString();
email.regardingobjectid.Value = new Guid(regardingObjectID);
CrmBoolean direction = new CrmBoolean();
direction.Value = true;
email.directioncode = direction;
TargetCreateEmail targetCreate = new TargetCreateEmail();
targetCreate.Email = email;
CreateRequest request = new CreateRequest();
request.Target = targetCreate;
CrmService myCrm = new CrmService();
myCrm.Url = CRMUrl + "/MSCRMServices/2007/CrmService.asmx";
CrmAuthenticationToken myToken = new CrmAuthenticationToken();
myToken.AuthenticationType = 0;
myToken.OrganizationName = Organization;
myCrm.CrmAuthenticationTokenValue = myToken;
myCrm.Credentials = System.Net.CredentialCache.DefaultCredentials;
CreateResponse response = (CreateResponse)myCrm.Execute(request);
// Create a SendEmail request.
SendEmailRequest req = new SendEmailRequest();
req.EmailId = response.id;
req.TrackingToken = "";
req.IssueSend = true;
// Send the e-mail message.
SendEmailResponse res = (SendEmailResponse)myCrm.Execute(req);