2013-05-26 48 views
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); 
+0

你得到一个空的Guid'00000000-0000-0000-0000-000000000000',而不是一个有效的。你检查了这个原因吗? – Saravanan

回答

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(); 
} 
相关问题