2012-11-01 23 views
5

Đối với mã của tôi, tôi truy xuất thư chưa đọc để trao đổi, thực hiện một số xử lý dựa trên thông báo đó và sau đó trả lời thư với kết quả của chế biến tôi đã làm.Gửi email trả lời bằng cách sử dụng dịch vụ web trao đổi - cách xử lý thuộc tính changeKey

Vấn đề mà tôi đang gặp là khi tôi cố gắng để trả lời email tôi nhận được báo lỗi dưới đây trên gọi responseMessage.send() hoặc responseMessage.sendAndSave():

The current ChangeKey is required for this operation. 

Dưới được mã mà tôi đang chạy được kích hoạt lỗi này:

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

tôi có thể kiểm tra giá trị _emailMessage changeKey qua _emailMessage.id.Changekey và có một giá trị ở đó, tôi lại có thể ngờ rằng để trở thành được gán cho responseMessage khi _emailMessage.createReply() là ca ll. Tôi không thể tìm cách để gán nó theo cách thủ công.

tôi đã không thể tìm thấy bất kỳ tài liệu tham khảo về vấn đề này trong thời gian tìm kiếm, tôi đã hy vọng một ai đó

Trả lời

5

Tôi chạy vào vấn đề này với .Forward, sau khi cài đặt thông điệp IsRead = true và tiết kiệm cập nhật lại cho rằng máy chủ. Điều đó thay đổi ChangeKey, vì vậy nó không còn hợp lệ nữa.

Thử thực hiện _emailMessage.Load() để nhận lại tin nhắn từ máy chủ và phím ChangeKey mới.

+0

cảm ơn, lỗi này xảy ra khi tôi chuyển từ exhange 2007 sang 2013 vì vậy phải là một yêu cầu cho năm 2013 bây giờ? – nickand

Các vấn đề liên quan