2012-03-23 76 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");