2014-12-12 3 views
0

에서 공유 폴더에서 C 번호와 이메일을 읽고이 문제입니다. 스프레드 시트로 전송하기 위해 구분 된 텍스트 파일에 값을 입력하고 스캔해야하는 이메일이있는 공유 폴더로 이동할 수 있습니다.아웃룩

그러나 현재 프로그램은 부모 수준의받은 편지함 폴더에서만 이메일을 검사합니다. 내가 필요로하는 대부분의 전자 메일은이 폴더에 있지만받은 편지함 내에 몇 개의 하위 폴더가 있는데이 폴더는 지금은 검색 할 수 없습니다. 내 문제는 내가 .Folders 두 번째를 제거하기 위해 노력했다 마지막 줄에 있지만 그건 그냥 부모받은 편지함을 얻을 생각

using Microsoft.Office.Interop; 


Outlook.Application app = new Outlook.Application(); 
Outlook._NameSpace nSpace = app.GetNamespace("MAPI"); 
Outlook.Recipient recip = nSpace.CreateRecipient("sharedFolderName"); 
recip.Resolve(); 

Outlook.MAPIFolder theParent = 
    nSpace.GetSharedDefaultFolder(recip, OlDefaultFolders.olFolderInbox).Parent; 
Outlook.MAPIFolder shared = 
    nSpace.GetSharedDefaultFolder(recip, OlDefaultFolders.olFolderInbox); 
Outlook.MAPIFolder subFolder = 
    theParent.Folders["Inbox"].Folders["FolderNameINeedToScan"]; 

:

여기에 현재 코드입니다. 현재 반환되는 오류는 "개체를 찾을 수 없습니다."입니다. 내가 찾고있는 폴더가 존재합니다.

Outlook의 하위 폴더는 어떻게 만듭니 까?

+0

Outlook을 프로그래밍하려는 사람들에게 내 첫 번째 권장 사항은 OutlookSpy를 설치하는 것입니다. dimastr.com/outspy/home.htm 모든 재미있는 정보를 제공합니다. – RenniePet

+0

@RenniePet 감사하지만이 작업을위한 것이므로이 소프트웨어를 Outlook에 설치할 수 없으며 이러한 유형의 소프트웨어를 공유 드라이브에 추가 할 수있는 권한이 없습니다. – IModulo5

답변

2

GetSharedDefaultFolder에서 가져온 대리자 폴더의 하위 또는 상위 폴더를 가져올 수 없습니다. 해당 사용자에게 필수 Exchange 사서함에 대한 전체 사서함 액세스 권한을 부여한 다음 해당 사서함을 현재 Outlook 프로필에 추가해야합니다. 해당 사서함의 모든 폴더는 NameSpace.Stores 컬렉션에서 사용할 수 있습니다.

Outlook 프로필에 다른 사서함을 추가 할 수없는 경우 Outlook을 사용하는 동안 보너스를 사용하여 해당 사서함에 로그온하고 폴더에 액세스 할 수 있습니다. 그렇지 않으면 Outlook이 닫혀 특정 사서함에 로그온 할 때 NameSpace.Logon을 사용할 수 있습니다.

+0

감사합니다.이게 올바른 방향으로 인도합니다. 나는 당신이 도왔던 방법에 관해서 실제적인 대답을 게시 할 것이다. – IModulo5

-2

이것은 에릭이 내게 준 힌트를 사용하여 해결되었습니다.

나는 nameSpace을 (를) 사용 중이던 것을 변경해야했습니다. 원래 사용했습니다

Outlook.Application app = new Outlook.Application(); 
Outlook._NameSpace nSpace = app.GetNamespace("MAPI"); 
Outlook.Recipient recip = nSpace.CreateRecipient("name of recipient"); 

그런 다음받는 사람을 사용하여 공유받은 편지함에 대한 액세스를 만듭니다. 그러나 해당받은 편지함의 하위 폴더에 연결할 수 없습니다. 에릭 덕분에 나는이 전환 :

Outlook._NameSpace nSpace = app.GetNamespace("MAPI"); 
Outlook.Stores theStore = nSpace.Stores; 
Folders subFolder = recip.Parent.Folders;  
dynamic email; 
for(int i = 1; i<= subFolder.GetFirst().Folders["folderName"].Folders["subFolderName"].Items.Count; i++) 
{ 
    email = subFolder.GetFirst().Folders["folderName].Folders["subFolderName"].Items[i]; 

마지막 행은 하위 폴더에 들어가서 모든 이메일을 통해 스캔 마법 캐스트입니다. 감사합니다. Eric

관련 문제