尝试发送电子邮件请求,但我得到例外

时间:2013-05-26 09:45:18

标签: c# email dynamics-crm-2011

我正在尝试在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);

1 个答案:

答案 0 :(得分: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();
}