在动态CRM插件中访问电子邮件发件人的地址

问题描述:

我正在编写一个动态CRM 2011插件,它挂接到电子邮件实体的更新后事件(pipeline的第40阶段),并且无法访问此电子邮件的发件人地址舞台上的代码。在动态CRM插件中访问电子邮件发件人的地址

我们设置了一个电子邮件路由器,它将发送到特定地址的电子邮件转发给Dynamics CRM。他们最终在服务队列中作为电子邮件实体。当我在前端打开这些记录时,发件人地址是可见的(并且如果适用的话,链接到相关用户/联系人)。

但是,如果我尝试访问代码中的电子邮件实体的From属性,它是空的。例如:

protected void ExecutePostEmailUpdate(LocalPluginContext localContext) 
{ 
    if (localContext == null) 
    { 
     throw new ArgumentNullException("localContext"); 
    } 

    var entity = (Entity)localContext.PluginExecutionContext.InputParameters["Target"]; 

    var email = entity.ToEntity<Email>(); 
    var from = email.From != null ? email.From.First().Id.ToString() : "[null]"; 
    this.Log("Email from: {0}", from); 
} 

在所有情况下,我在我的日志中收到“Email from:[null]”。

有没有人有任何建议?需要对相关事件做些什么(如果是从电子邮件中创建的),为此,我需要查看电子邮件的来源。

谢谢。

如果这是更新后和从地址领域还没有更新期间改变,它不会被传递目标参数插件。你需要添加前/后图像,并添加从地址属性到这个图像。那么你将能够从图像中获得价值

+1

非常感谢!对于任何感兴趣的人,这里是前/后实体图像的背景信息:http://msdn.microsoft.com/en-us/library/gg309673.aspx#bkmk_preandpost – mwrichardson 2013-05-02 10:57:57

尝试检查电子邮件的发件人属性。它应该包含在from字段中使用的实际电子邮件地址。

+0

嗨,谢谢你回到我身边。不幸的是,发送者属性(字符串类型)也是空的。我已经证实,在管道的所有阶段都是这种情况(10,20和40)。任何进一步的建议将是非常有用的,因为我现在完全停留在此。谢谢! – mwrichardson 2013-05-01 09:38:19