2015-04-23 66 views
-1

當我使用CreateEmail()調用創建草稿郵件時,如何預先設置目標保存文件夾,以便當用戶按「發送」和Outlook時最終發送的項目將被保存到?如何使用Exchange EWS設置SaveSentMessageFolder

在Outlook中,它是在選項 - >「保存已發送的項目要」,但我不知道該怎麼做,在EWS

謝謝

回答

1

在EWS,您可以指定哪個文件夾想要一條你的發送信息保存到。如果您使用EWS Managed API,則通過Overload for Send或SendAndSaveCopy執行此操作,否則默認將爲當前安全主體的草稿文件夾和sent-items文件夾。

如果您創建與EWS草案,並與Outlook發送,那麼你就需要將PR_SENTMAIL_ENTRYID https://msdn.microsoft.com/en-us/library/office/cc842003.aspx設置爲你希望Outlook的郵件保存到

 ExtendedPropertyDefinition PR_SENTMAIL_ENTRYID = new ExtendedPropertyDefinition(0x0E0A,MapiPropertyType.Binary); 
     TestMove.SetExtendedProperty(PR_SENTMAIL_ENTRYID,ConvertHexStringToByteArray("00000000BE1CDD3D9606274890F3DE4B7DDFBE490100751047FD18EA304D9D40B1428BAC20D00000364670AA0000")); 

的文件夾的HexId (這與Outlook設置的屬性相同)

您需要確保使用文件夾的HexId而不是EWSId來獲取HexId,您可以使用convertId,例如

 AlternateId ai = new AlternateId(IdFormat.EwsId, folder.Id.UniqueId, "[email protected]"); 
     AlternateId Convertedai = (AlternateId)service.ConvertId(ai, IdFormat.HexEntryId); 
     ExtendedPropertyDefinition PR_SENTMAIL_ENTRYID = new ExtendedPropertyDefinition(0x0E0A,MapiPropertyType.Binary); 
     TestMove.SetExtendedProperty(PR_SENTMAIL_ENTRYID, ConvertHexStringToByteArray(Convertedai.UniqueId)); 

     internal static byte[] ConvertHexStringToByteArray(string hexString) 
    { 
     if (hexString.Length % 2 != 0) 
     { 
      throw new ArgumentException(String.Format(CultureInfo.InvariantCulture, "The binary key cannot have an odd number of digits: {0}", hexString)); 
     } 

     byte[] HexAsBytes = new byte[hexString.Length/2]; 
     for (int index = 0; index < HexAsBytes.Length; index++) 
     { 
      string byteValue = hexString.Substring(index * 2, 2); 
      HexAsBytes[index] = byte.Parse(byteValue, NumberStyles.HexNumber, CultureInfo.InvariantCulture); 
     } 

     return HexAsBytes; 
    } 

乾杯 格倫

+0

謝謝。這應該正是我想要的。但我有一個FolderId對象說FFF 我調用SetExtendedProperty(PR_SENTMAIL_ENTRYID,Encoding.ASCII.GetBytes(FFF.UniqueId)); 不做這項工作。任何想法? – DayDayHappy

+0

您需要確保將EWSid轉換爲文件夾的HexEntryId(與PR_EntryId相同)。我已經在 –

+0

以上發佈了一個示例,非常感謝。它完美的作品 – DayDayHappy

相關問題