2010-12-11 3 views
1

메일 항목에 대한 보낸 사람의 SMTP 전자 메일 주소를 검색하는 Outlook 플러그인을 작성했습니다. 그것은 대부분의 컴퓨터에서 잘 작동하지만 Exchange 사용자가 보낸 전자 메일의 SMTP 주소를 확인할 때마다 COMException을 throw하는 하나의 컴퓨터 (새 개발 컴퓨터)가 있습니다. 아래는 내가 사용하고 코드 ...받는 사람 개체의 AddressEntry 속성에 액세스 할 때 다음 COMException이 발생Outlook Interop AddressEntry 예외

private string SenderEmail(MailItem item) 
{ 
    if (item == null) 
    { 
     return ""; 
    } 
    else 
    { 
     string senderEmail = string.Empty; 

     if (item.SenderEmailType.ToUpper() == "EX") 
      senderEmail = GetEmailAddressFromOU(item.SenderEmailAddress); 
     else 
      senderEmail = item.SenderEmailAddress; 

     return senderEmail; 
    } 
} 

private string GetEmailAddressFromOU(string ouName) 
{ 
    string emailAddress = string.Empty; 

    NameSpace oNS = ((Microsoft.Office.Interop.Outlook.Application)OutlookAppObj).GetNamespace("MAPI"); 
    Recipient recip = oNS.CreateRecipient(ouName); 
    recip.Resolve(); 
    ExchangeUser exUser = recip.AddressEntry.GetExchangeUser(); 

    emailAddress = exUser.PrimarySmtpAddress; 

    Marshal.ReleaseComObject(exUser); 
    Marshal.ReleaseComObject(recip); 
    Marshal.ReleaseComObject(oNS); 

    return emailAddress; 
} 

입니다 :

메시지 = "시도한 작업이 실패하는 객체가 될 수 없습니다. 찾았습니다. "

Outlook 2010을 사용하는 Windows 7 (64 비트)을 사용하고 있지만이 동일한 코드는 동일한 OS 및 Outlook 버전이있는 다른 컴퓨터에서 작동합니다. 또한 Windows 7 (32 비트) 및 Outlook 2010이었던 이전 개발 기계에서도 잘 작동합니다.

StackOverflow 및 Google에서 해결 방법을 검색했지만 찾지 못했습니다.

누구든지이 문제에 대해 밝힐 수 있습니까?

+0

추가 정보 : 문제는 보낸 사람의 LDAP 경로를 확인하는 중입니다. 새 이메일의받는 사람 상자에 LDAP 경로를 입력하고 "이름 확인"을 클릭하면 올바른 사용자로 확인됩니다. 내 컴퓨터에서 "이름 확인"을 클릭하면 "Microsoft Outlook에서 인식하지 못합니다."라는 메시지가 나타납니다. –

답변

0

문제를 일으키는 것이 확실하지 않지만 Outlook에서 내 전자 메일 계정을 모두 삭제하고 다시 추가하면 문제가 해결됩니다.