2012-11-01 6 views
5

Dla mojego kodu, odczytuję nieprzeczytaną wiadomość z wymiany, przetwarzam ją na podstawie tej wiadomości, a następnie odpowiadam na wiadomość z wynikami przetwarzanie zrobiłem.Wysyłanie wiadomości e-mail z odpowiedzią przy użyciu usług sieci wymiany - jak radzić sobie z właściwością changeKey

Problem, który mam jest to, że gdy próbuję odpowiedzieć na e-mail dostaję poniższy błąd na wywołanie responseMessage.send() lub responseMessage.sendAndSave():

The current ChangeKey is required for this operation. 

Below jest kod, który używam, która jest wyzwalanie ten błąd:

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(); 
    } 

jestem w stanie sprawdzić wartość _emailMessage changeKey poprzez _emailMessage.id.Changekey i nie ma tam wartość, spodziewałem się, że będzie przypisane do responseMessage, gdy _emailMessage.createReply() było ca ll. Nie mogę znaleźć sposobu ręcznego przypisania go.

byłem w stanie znaleźć żadnych odniesień do tej kwestii podczas poszukiwania, miałem nadzieję, że ktoś

Odpowiedz

5

wpadłem na ten problem z .forward, po ustawieniu wiadomość IsRead = true i zapisywanie tę aktualizację z powrotem do serwer. To zmienia klucz ChangeKey, więc nie jest już poprawny.

Spróbuj wykonać _emailMessage.Load(), aby ponownie pobrać wiadomość z serwera i nowy klawisz ChangeKey.

+0

dziękuję, ten błąd wystąpił, gdy przeniosłem się z odmiany 2007 do 2013, więc musi być wymagane na 2013 rok teraz? – nickand

Powiązane problemy