我正在编写一个动态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]的电子邮件。
有没有人有任何建议?需要对相关事件(如果从电子邮件创建一个事件)做一些事情,为此,我需要查看电子邮件来自谁。
感谢。
答案 0 :(得分:1)
尝试检查电子邮件的发件人属性。它应包含from字段中使用的实际电子邮件地址。
答案 1 :(得分:1)
如果这是更新后且来自地址字段在更新期间未更改,则不会将其传递到 Target 参数中的插件。您需要添加前/后图像并将从地址属性添加到此图像。然后你就能从图像中获得价值