4

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

但是,这适用于某些笔记本电脑,而有些则给出错误提示

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

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

4

1 回答 1

2

如果您需要SMTP 地址Outlook.Recipient,您可以从 X.500创建一个并将其解析Recipient.AddressEntryOutlook.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 属性将始终存在。

于 2012-08-14T13:32:03.937 回答