0

我正在尝试在 crm2011 中创建和发送电子邮件请求。我有电子邮件,但是当我尝试发送它时,我得到了一个例外:

ID = 00000000-0000-0000-0000-000000000000 的电子邮件不存在。

这是我的代码:

OrganizationServiceProxy p = new OrganizationServiceProxy(
    new Uri(""), null, ccr, null);

WhoAmIRequest systemUserRequest = new WhoAmIRequest();
WhoAmIResponse systemUserResponse = (WhoAmIResponse)p.Execute(systemUserRequest);
Guid _userId = systemUserResponse.UserId;

Entity email = new Entity("email");
email.Attributes.Add("subject", "test");

Entity[] To = new Entity[1];
To[0] = new Entity("activityparty");
To[0]["partyid"] = new EntityReference("contact", new Guid("some guidid"));
email.Attributes.Add("to", To);

Entity[] From = new Entity[1];
From[0] = new Entity("activityparty");
From[0]["partyid"] = new EntityReference("systemuser", _userId);
email.Attributes.Add("from", From);

try
{
    Guid emailGuid = p.Create(email);         
}
catch (Exception e)
{
    Console.WriteLine("error " + e.Message);
    Console.ReadLine();
}

OrganizationRequest request = new OrganizationRequest() { RequestName = "SendEmail" };

request["EmailId"] = email.Id;
request["TrackingToken"] = "";
request["IssueSend"] = true;

// THE CODE FAILS HERE:
OrganizationResponse rsp = p.Execute(request);
4

1 回答 1

1

主要错误在这一行:

request["EmailId"] = email.Id;

创建电子邮件时,该Id属性未填充在记录中,而是Guid在变量中emailGuid

我建议以这种方式更改代码:

try
{
    Guid emailGuid = p.Create(email);        
    OrganizationRequest request = new OrganizationRequest() { RequestName = "SendEmail" };
    request["EmailId"] = emailGuid; // now is the right variable
    request["TrackingToken"] = "";
    request["IssueSend"] = true;
    OrganizationResponse rsp = p.Execute(request);
}
catch (Exception e)
{
    Console.WriteLine("error " + e.Message);
    Console.ReadLine();
}
于 2013-05-26T10:45:16.647 回答