2015-01-21 36 views
0

從收到的電子郵件創建「全部回覆」後,我需要刪除不允許接收此回覆的收件人。但是,在創建回覆消息後,回覆消息的收件人列表(ToRecipients,CcRecipients,BccRecipients)爲空。帶有Exchange EWS的C#服務:從新創建的回覆中讀取收件人

ResponseMessage responseMessage = email.CreateReply(true); 
foreach (EmailAddress toRecipient in responseMessage.ToRecipients) 
{ 
    if (! _outboundEmailAdresses.Contains(toRecipient.Address)) 
    { 
     responseMessage.ToRecipients.Remove(toRecipient.Address); 
    } 
} 

`

如果我通過email.ToRecipients迭代,我看到所有的收件人。如果我通過responseMessage.ToRecipients迭代,我看不到任何收件人。不應該email.CreateReply(true)將email.from和email.ToRecipients地址複製到responseMessage?

回答

1

這是一個有點混亂。基本上,ResponseMessage類使用ReferenceItemId元素實現EWS的CreateItem操作,該元素允許您向服務器發送最少的信息。這個想法是服務器已經擁有大部分發送回復所需的信息(如原始主體,收件人列表等),因此您不需要重新發送該信息。所以ResponseMessage不會從EmailMessage獲得收件人的副本,因爲它不需要它。

您需要檢查原始郵件的收件人以及發件人。如果他們不包含不需要的地址,那麼你不需要做任何事情。如果他們這樣做,那麼你會想設置ResponseMessage.ToRecipients。如果你這樣做,你需要添加所有需要的地址。觸摸ResponseMessage.ToRecipients將覆蓋原始收件人列表。

相關問題