Получение адреса электронной почты получателя, который является пользователем обмена - PullRequest
9 голосов
/ 02 июня 2011

В моем подключаемом модуле VSTO Outlook 2007 я могу получить адрес электронной почты получателя, который является пользователем обмена.Но когда у меня есть следующий случай, он не возвращает мне электронное письмо SMTP:

  1. Добавить новый элемент контактов Outlook (в контактах Outlook).
  2. Адрес электронной почты этого контактаЭлемент должен быть электронным письмом пользователя обмена (любого сотрудника вашей организации, но это пользователь обмена).
  3. Теперь, когда я выбираю этот контакт Outlook в качестве получателя электронной почты и в событии отправки элемента я не могу получить smtpадрес.

Ниже мой код:

    Recipient r = mailItem.Recipients[i];
r.Resolve();
//Note, i have different conditions that check the AddressEntryUserType of recipient's 
//address entry object. All other cases work fine. In this case this is 
//olOutlookContactAddressEntry. 
//I have tried the following:

 ContactItem cont = r.AddressEntry.GetContact();
 string email = cont.Email1Address;
 string emailtmp = r.AddressEntry.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x800F101E") as string;

Может ли кто-нибудь помочь мне с тем, какое свойство я должен использовать в этом случае, чтобы получить SMTP-письмо?

Ответы [ 2 ]

4 голосов
/ 27 июля 2011

Я нашел способ использовать элемент ExchangeUser и разрешить адрес SMTP через этот объект. Помогло это сообщение - Получить SMTP-письмо от ContactInfo, хранящееся в Exchange

    foreach (Outlook.Recipient recipient in currentAppointment.Recipients)
    {
        Outlook.ExchangeUser exchangeUser = recipient.AddressEntry.GetExchangeUser();
        string smtpAddress;
        if (exchangeUser != null)
        {
             smtpAddress = exchangeUser.PrimarySmtpAddress;
        }
        else
        {
             smtpAddress = recipient.Address;
        }
    }
0 голосов
/ 06 июня 2011

Если я правильно помню, было несколько случаев, когда адреса электронной почты не разрешались, если вы не сохранили элемент, отправляемый первым. Вы можете попробовать это. Кроме того, вы не получаете никаких сообщений «нарушения безопасности», запрашивающих разрешение на доступ к адресной книге пользователя, или вы отключили / обошли все эти вещи? У меня было много проб с тем, что в итоге потребовало использовать Redemption для outlook.

...