2011-11-16 1 views
3
  1. Windows 응용 프로그램에서 비즈니스 논리
  2. 을 호출합니다. 비즈니스 논리가 Exchange 웹 서비스을 사용하여 새 전자 메일을 만들고 Windows 응용 프로그램에 전자 메일의 Entry ID를 반환합니다.
  3. Windows 응용 프로그램은 다음을 통해 새 전자 메일을 찾고 표시합니다. 전자 메일의 항목 ID를 기반으로하는 Outlook Interop

캐시 된 Exchange 모드 사용할 때 위의 작동하지 않습니다. Outlook은 메시지의 로컬 캐시 만 확인하고 서버에서 방금 생성 되었기 때문에 로컬에서 즉시 사용할 수 없습니다.Outlook에 새 전자 메일 표시

그러나 Outlook이 Exchange Server에서 전자 메일을 확인하기 때문에 계정이 캐시 된 Exchange 모드를 사용하지 않는 경우에도 정상적으로 작동합니다.

그래서 질문 :

어떻게 Outlook에서 로컬 캐시 대신 Exchange Server를 확인하거나 적어도 메시지를 찾기 전에 서버와 동기화하는지 확인합니까?

다음은 항목 ID를 기반으로 전자 메일을 표시하는 데 사용되는 (단순화 된) 코드입니다.

void ShowEmail(string entryId) 
{ 
    // (COM release and error handling removed for readability) 
    var app = new Microsoft.Office.Interop.Outlook.Application(); 
    var ses = app.Session; 
    var mailItem = 
    (Microsoft.Office.Interop.Outlook.MailItem)ses.GetItemFromID(entryId); 
    mailItem.Object.Display(true); 
} 

답변

2

:

여기에 우리가 그들의 항목 ID를 기반으로 전자 메일을 표시하기 위해 사용하는 (간체) 코드입니다. this post을 참조하십시오. 사용자가 캐시 된 Exchange 모드을 사용하는 경우이 기능을 사용할 수 없습니다.

레지스트리에 액세스 할 수있는 경우 캐시 된 Exchange 모드을 해제 한 다음 다시 사용하도록 설정할 수 있습니다. CEM을 활성화/비활성화하도록 레지스트리를 수정하는 this post을 참조하십시오.

+0

그건 나쁜 소식입니다. – bernhof