Outlook加载项属性错误

时间:2012-08-14 08:21:31

标签: c# outlook vsto outlook-addin

我正在尝试获取电子邮件的 SMTP地址,并且我编写了一个代码以避免获取x.500地址。我通过PropertyAccessor.GetProperty(PR_SMTP_ADDRESS)访问PR_SMTP_ADDRESS = @"http://schemas.microsoft.com/mapi/proptag/0x39FE001E";

来获取SMTP地址

然而,这适用于某些笔记本电脑,而有些则说错误

  

“属性http://schemas.microsoft.com/mapi/proptag/0x39FE001E未知或无法找到。”

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

如果您需要 SMTP地址,则可以从X.500创建Outlook.Recipient并将Recipient.AddressEntry解析为Outlook.ExchangeUser

string address = string.Empty;
Outlook.Recipient recipient = mailItem.Application.Session.CreateRecipient(mailItem.SenderEmailAddress);
if (recipient != null && recipient.Resolve() && recipient.AddressEntry != null) 
{
    Outlook.ExchangeUser exUser = recipient.AddressEntry.GetExchangeUser();
    if (exUser != null && !string.IsNullOrEmpty(exUser.PrimarySmtpAddress))
      address = exUser.PrimarySmtpAddress;
}

您使用PR_SMTP_ADDRESS收到的错误表示邮件邮件属性中不存在MIME属性,您需要另一种方法来确定发件人SMTP地址。您不能假设MIME属性始终存在。