调用Recipient.Resolve时未正确解析LDAP收件人

时间:2018-06-05 08:47:27

标签: c# outlook ldap outlook-addin mapi

我正在使用outlook对象模型开发一个outlook Addin c#。我的Addin代码需要解析收件人,以便根据其解析的类型(AddressEntryUserType)对其进行操作。

我使用Recipient.Resolve()方法,该方法运行良好。但是,问题是当在“收件人”字段中输入地址时发送消息时,电子邮件(我知道它应该是LDAP条目的事实)不会解析为LDAP条目。相反,它被解析为SMTP地址条目。我无法在代码中知道这实际上是一个LDAP条目。

注意:按“收件人”按钮并使用地址簿选择LDAP条目。收件人正确解析。

在这种情况下我该怎么办?有没有办法克服这个问题?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

(基于对原始问题的评论) - 如果要针对特定​​AB容器解析名称,可以使用扩展MAPI(仅限C ++或Delphi)并调用IABContainer.ResolveNames。如果失败,您可以尝试对该容器的内容表使用PR_ANR限制。

如果无法选择扩展MAPI,则可以使用Redemption及其RDOAddressListResolveName方法。它将使用上面概述的两种方法,并且可以从任何语言访问。