2012-11-01 7 views
5

Für meinen Code erhalte ich eine ungelesene Nachricht vom Exchange, führe eine Verarbeitung basierend auf dieser Nachricht durch und antworte dann auf die Nachricht mit den Ergebnissen der Verarbeitung habe ich getan.Senden einer Antwort-E-Mail mithilfe von Exchange-Webdienste - Umgang mit der changeKey-Eigenschaft

Das Problem, das ich habe, ist, dass wenn ich versuche, an die E-Mail antworten ich die folgenden Fehler immer beim Aufruf responseMessage.send() oder responseMessage.sendAndSave():

The current ChangeKey is required for this operation. 

Below der Code ist, dass ich das bin mit auslöst diesen Fehlers:

public void replyToEmail(EmailMessage _emailMessage, String _reply) 
    { 

     String serviceManager = emailServerAddress = ConfigurationSettings.AppSettings["serviceManagerEmail"].Trim(); 
     ResponseMessage responseMessage = _emailMessage.CreateReply(true); 
     responseMessage.BodyPrefix = _reply; 

     String changekey = _emailMessage.Id.ChangeKey; 

     if (!serviceManager.Equals("")) 
     { 
      responseMessage.CcRecipients.Add(new EmailAddress(serviceManager)); 
     } 

     responseMessage.Send(); 
    } 

ich bin in der Lage, den _emailMessage ChangeKey Wert über _emailMessage.id.Changekey zu überprüfen, und es gibt dort einen Wert, würde ich erwarten, dass zu sein zugewiesen an die responseMessage, wenn _emailMessage.createReply() ca war ll. Ich kann keine manuelle Zuweisung finden.

ich nicht in der Lage gewesen bin bei der Suche alle Verweise auf diese Frage zu finden, ich hatte gehofft, jemand

Antwort

5

ich mit .forward in dieses Problem lief, nachdem die Meldung Einstellung IsRead = true und das Update wieder auf die rettende Server. Das ändert den ChangeKey, so dass er nicht mehr gültig ist.

Versuchen Sie _emailMessage.Load(), um die Nachricht erneut vom Server und dem neuen ChangeKey zu erhalten.

+0

danke, dieser Fehler trat auf, als ich von der Austausch 2007 zu 2013 wechselte, also muss eine Voraussetzung für 2013 jetzt sein? – nickand