Trouble getting CRM 4.0 to send email using API... Please Help!

3

I am trying to get CRM to send an email melodramatically from a .Net C# app. I think I am close, but I keep getting an error:

0x80040203 Cannot create activity party: either partyid or addressused field should be present Platform

Here is my code:

private static void sendCrmEmail()
    {
    try
    {
      //Set up the service
      CrmService crmservice = GetCrmService(OrganisationName, ServerAddress);

      Guid emailID = new Guid();

      // Create a FROM activity party for the email
      activityparty fromParty = new activityparty();
      fromParty.partyid = new Lookup();
      fromParty.partyid.type = EntityName.systemuser.ToString();
      fromParty.partyid.Value = new Guid("275462F3-1E73-DF11-828B-0050568F1812");


      //Create a TO activity party for email
      activityparty toParty = new activityparty();
      fromParty.partyid = new Lookup();
      fromParty.partyid.type = EntityName.contact.ToString();
      fromParty.partyid.Value = new Guid("81AEDF3D-E040-E011-9DA2-000C29E4BD21");  

      // Create an email message.
      email email = new email();

      // Set email properties
      email.to = new activityparty[] { fromParty };
      email.from = new activityparty[] { toParty };
      email.subject = "subject";
      email.description = "body";

      CrmBoolean direction = new CrmBoolean();
      direction.Value = true;
      email.directioncode = direction;

      TargetCreateEmail targetCreate = new TargetCreateEmail();
      targetCreate.Email = email;

      CreateRequest request = new CreateRequest();
      request.Target = targetCreate;

      CreateResponse response = (CreateResponse)crmservice.Execute(request);
      emailID = response.id;

    }
    catch (System.Web.Services.Protocols.SoapException ex)
    {
      Console.WriteLine(ex.Detail.InnerText);
    }


}
api
email
dynamics-crm
crm

1 Answer

2

Your toParty block is just resetting the fromParty. It should look like this:

//Create a TO activity party for email
activityparty toParty = new activityparty();
toParty.partyid = new Lookup();
toParty.partyid.type = EntityName.contact.ToString();
toParty.partyid.Value = new Guid("81AEDF3D-E040-E011-9DA2-000C29E4BD21");
answered on Stack Overflow Feb 25, 2011 by Forgotten Semicolon

User contributions licensed under CC BY-SA 3.0