代码之家  ›  专栏  ›  技术社区  ›  Dusan Kocurek

从存储在Exchange中的联系人信息获取Smtp电子邮件

  •  2
  • Dusan Kocurek  · 技术社区  · 15 年前

    我正在将VSTO用于我的Outlook加载项。目前我正在处理来自所有Outlook联系人的电子邮件地址。如果EmailAddress1Type为“SMTP”,则ContactInfo的实例没有问题。

    赎回图书馆不是我的解决方案,因为它是昂贵的只是解决这一个问题。

    杜赞

    1 回复  |  直到 15 年前
        1
  •  5
  •   SliverNinja - MSFT    13 年前

    这是 MSDN reference link 以及相应的示例代码:

    private const string Email1EntryIdPropertyAccessor = "http://schemas.microsoft.com/mapi/id/{00062004-0000-0000-C000-000000000046}/80850102";
    
    PropertyAccessor propertyAccessor = contactItem.PropertyAccessor;
    object rawPropertyValue = propertyAccessor.GetProperty(Email1EntryIdPropertyAccessor);
    string recipientEntryID = propertyAccessor.BinaryToString(rawPropertyValue);
    Recipient recipient = contactItem.Application.Session.GetRecipientFromID(recipientEntryID);
    if (null == recipient)
        throw new InvalidOperationException();
    
    bool wasResolved = recipient.Resolve();
    if (!wasResolved)
        throw new InvalidOperationException();
    ExchangeUser exchangeUser = recipient.AddressEntry.GetExchangeUser();
    string smtpAddress = exchangeUser.PrimarySmtpAddress;
    
    推荐文章