2012-03-23 79 views
3

我們的客戶使用Microsoft CRM 2011 Outlook客戶端,他們有一個獨特的業務需求。他們想讓所有使用Outlook發送電子郵件的員工強制執行「Set Regarding」(怪異?)。如果用戶在發送電子郵件時忘記設置,outlook應該顯示通知消息,並且不應該讓用戶發送電子郵件。Crm 2011 Outlook客戶端 - 設置爲強制

我一直沒有找到任何開箱即用的功能,所以我決定寫一個outlook插件。有沒有辦法知道在Outlook插件ItemSend事件,郵件項目具有爲關於字段設置的值?我可以得到電子郵件的主題,包括CRM:xxxxx,但由於電子郵件尚未在CRM中創建,我不知道如何提取有關數據。

回答

3

有關跟蹤的信息存儲在郵件的MAPI屬性中。請參閱附件截圖。它們應該可以在ItemSend事件中訪問。

你可以得到這樣的信息(來自@Ahmeds評論)

dynamic regardingId = mailItem.PropertyAccessor.GetProperty("schemas.microsoft.com/mapi/string/‌​;{00020329-0000-0000-C000-000000000046}/crmRegardingId/0x0000001F"); 

enter image description here

+0

神奇。你剛剛救了我的一天。對於其他可能面臨此問題的人: 動態aboutId = mailItem.PropertyAccessor.GetProperty(「http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/crmRegardingId/0x0000001F」) ; – Ahmed 2012-03-23 11:58:34

+0

謝謝@艾哈邁德。我已將您的代碼添加到答案中,以便正確格式化 – ccellar 2012-03-23 12:07:53

0

我用下面的代碼VS2012和Outlook 2010,以獲得有關GUID。

dynamic id = mailItem.UserProperties["crmRegardingId"]; 
if (id != null) Console.Write(id.Value); 
else Console.Write("Error");