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

时间:2013-04-30 12:05:10

标签: c# dynamics-crm-2011

我正在编写一个动态CRM 2011插件,该插件挂钩到电子邮件实体的更新后事件(pipeline的第40阶段),并且在代码的此阶段访问电子邮件的发件人地址时遇到问题。

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

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

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);
}

在所有情况下,我都会在我的日志中收到“来自:[null]的电子邮件。

有没有人有任何建议?需要对相关事件(如果从电子邮件创建一个事件)做一些事情,为此,我需要查看电子邮件来自谁。

感谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

如果这是更新后且来自地址字段在更新期间未更改,则不会将其传递到 Target 参数中的插件。您需要添加前/后图像并将从地址属性添加到此图像。然后你就能从图像中获得价值