2011-09-20 2 views
0

사용자 메일에 액세스하려면 MAPI32.dll을 사용하고 있습니다. 현재 나는 다음과 같은추가 대화 상자없이 MAPI를 사용하여 Exchange 메시지 저장소를 여는 방법

MAPI.LogonEx(IntPtr.Zero, profileName, null, MAPI.FLAGS.Extended | MAPI.FLAGS.NewSession | MAPI.FLAGS.AllowOthers | MAPI.FLAGS.NoMail, out mapiSession); 
    ... 
    mapiSession.OpenMsgStore(IntPtr.Zero, ENTRYID.Create(rows[0, 0]), Guid.Empty, IMAPISession.FLAGS.BestAccess | IMAPISession.FLAGS.MdbOnline | IMAPISession.FLAGS.MdbTemporary | IMAPISession.FLAGS.MdbNoMail, out mdb); 

내가 아웃룩 서버에서 직접 메시지를 얻기 위해 사용 IMAPISession.FLAGS.MdbOnline 야하고있는 중이 야. 이렇게하면 사용자받은 편지함에 성공적으로 연결되어 내가 루프 할 수 있습니다. 그러나이 코드는 대화 상자가 사용자 자격 증명을 입력하도록합니다. 누구든지 어떤 "조용한"방법을 제안 할 수 있습니다 대화 상자없이 메시지를 받으십시오?

어떤 조언을 해주시면 기쁩니다.

답변

0

messagestore에 연결하는 동안 자격 증명을 지정해야합니다. 이렇게하면 다시 요청하지 않고도 계속 mapi 레이어를 만들 수 있습니다.

+0

어떻게하면됩니까? LogonEx 메서드의 profilePassword 매개 변수는 모든 Win32 플랫폼에서 무시됩니다. – alert

0

Exchange 공급자는 항상 현재 사용자 (프로세스 프로세스의 상위 프로세스)의 ID를 사용하지만 자격 증명 캐시도 사용합니다. 저장소를 열기 전에 CredWrite()를 사용하여 자격 증명을 캐시 할 수 있어야합니다.

관련 문제