【发布时间】:2023-03-29 02:44:01
【问题描述】:
我一直在使用 RDOMail.SenderEmailAddress 属性在 Outlook 中获取发件人的电子邮件地址,但我最近意识到,在某些情况下,对于 SMTP 或 IMAP 电子邮件帐户,此属性有时是 null,就在电子邮件到达之后收件箱。
使用 Outlook 互操作库获取发件人电子邮件地址的方法相当复杂:https://msdn.microsoft.com/library/office/ff184624.aspx
但是,这不适用于 Redemption RDOMail 对象,因为 RDOAddressEntry 接口缺少 AddressEntryUserType 和 GetExchangeUser 方法。
RDOAddressEntry 对象的文档对SMTPAddress 属性进行了如下说明:
字符串,只读。返回给定用户的 SMTP 地址。如果 地址类型为“SMTP”,返回值同 由 Address 属性返回。如果地址类型是“EX”, Redemption 尝试检索 PR_SMTP_ADDRESS 属性,如果 不成功,它会从 PR_EMS_AB_PROXY_ADDRESSES 扩展 MAPI 属性。
如果我在我的方法中这样做,看起来它可能是获取发件人地址的更可靠的方法:
if (rdoMail.SenderEmailAddress != null) return rdoMail.SenderEmailAddress;
if (rdoMail.Sender != null) return rdoMail.Sender.SMTPAddress;
return null;
由于我没有可靠的方法来检验我的理论,所以我在这里寻求帮助,看看是否有人在处理这个问题方面有更多经验。
提前致谢。
【问题讨论】:
标签: c# email outlook outlook-addin outlook-redemption