2

我正在编写一个 Dynamics CRM 2011 插件,该插件与电子邮件实体的更新后事件(管道的第 40 阶段)挂钩,并且在此阶段的代码中无法访问电子邮件的发件人地址。

我们设置了一个电子邮件路由器,将发送到特定地址的电子邮件转发到 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);
}

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

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

谢谢。

4

2 回答 2

1

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

于 2013-05-01T23:30:28.370 回答
1

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

于 2013-05-01T02:00:36.027 回答