Получение адреса электронной почты от объекта получателя

Я разрабатываю надстройку VSTO, которая должна прочитать все адреса электронной почты при отправке нового сообщения. Ниже приведен код, который я использую сейчас, но в некоторых случаях он не работает.

                            if (addr.Type == "EX")
                            {
                               if (addr.AddressEntryUserType == OlAddressEntryUserType.olExchangeUserAddressEntry
                                    || addr.AddressEntryUserType == OlAddressEntryUserType.olExchangeRemoteUserAddressEntry)
                                {
                                    exch = addr.GetExchangeUser();
                                    smtpAddress = exch != null ? exch.PrimarySmtpAddress : null;
                                }
                                else if (addr.AddressEntryUserType == OlAddressEntryUserType.olOutlookContactAddressEntry)
                                {
                                    cont = addr.GetContact();
                                    //returns the actual contact but it has 3 email properties (Email1Address, Email2Address, Email3Address). 
  //How to identify which email has the user selected
                                }
                            }
                            else if (addr.Type == "SMTP")
                            {
                                smtpAddress = addr.Address;
                            }

Если AddressEntryUserType имеет значение olExchangeUserAddressEntry или olExchangeRemoteUserAddressEntry, то код работает нормально. Но если это локальный контакт Outlook (olOutlookContactAddressEntry), я не уверен, как получить адрес электронной почты. Метод GetContact дает мне фактический контакт, но, поскольку он имеет 3 электронных письма, я не знаю, как найти, какой адрес выбрал пользователь при составлении электронного письма.

Я уже пытался преобразовать адрес электронной почты на основе Exchange в SMTP, как обсуждалось на этом форуме. Но это дает огромное влияние на производительность. Для преобразования одного адреса в SMTP требуется около 300 мс. Есть ли другой эффективный способ идентифицировать адрес электронной почты из объекта Recepient?

Ответы на вопрос(1)

Ваш ответ на вопрос