2017-05-08 1 views
1

, using Outlook = Microsoft.Office.Interop.Outlook; 읽지 않은 이메일을 필터링하려면, 나는 다음과 같은 코드 마찬가지로다른받는 사람에게 보낸 편지함에서 메일을 필터링하려면? 전망 인터롭에서

Outlook.Application oApp = new Outlook.Application(); 
Outlook.NameSpace outlookNameSpace = oApp.Application.GetNamespace("MAPI"); 
Outlook.MAPIFolder inbox = outlookNameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox); 
Outlook.Items items = inbox.Items.Restrict("[Unread]=true"); 

을 사용하고, 나보다 다른 특정 수신자에게 전송 된 메일을 필터링하는 방법이 있나요.

는 말은, 필터 메일은 [email protected]로 전송.
내 메일 ID은 또한 또는 CC에서 그 메일에 존재하는 것입니다. Outlook interop에서 가능한 방법을 찾을 수있게되어 기쁩니다.

답변

1

당신은 PR_DISPLAT_TO/PR_DISPLAY_CC 그러나 그 수도 있고하지 않을 수

@SQL="http://schemas.microsoft.com/mapi/proptag/0x0E04001F" LIKE '%[email protected]%' 

명심 PR_DISPLAY_TO MAPI 속성에 일치하는 검색 다음 (PR_DISPLAT_CC에 대한 0x0E03001F와 0x0E04001F 교체) 등의 검색 쿼리를 사용할 수 있습니다 이메일 주소를 포함한다; 그들은 단지 표시 이름을 포함 할 수 있습니다.

확장 MAPI 레벨 (C++ 또는 델파이)에

, 당신은받는 사람 (RES_SUBRESTRICTION/PR_MESSAGE_RECIPIENTS)에 대한 제한을 만들 수 있습니다. Redemption (언어)를 사용하는 옵션 인 경우

, 당신은 RDOFolder를 사용할 수 있습니다. Items.Restrict - Outlook 개체 모델과 달리 각받는 사람 (RES_SUBRESTRICTION/PR_MESSAGE_RECIPIENTS/RES_OR/PR_DISPLAY_NAME/PR_EMAIL_ADDRESS)에서 PR_DISPLAY_NAMEPR_EMAIL_ADDRESS 속성의받는 사람 하위 제한으로받는 사람/참조/숨은 참조 쿼리를 확장합니다.

set Session = CreateObject("Redemption.RDOSession") 
Session.MAPIOBJECT = Application.Session.MAPIOBJECT 
set Folder = Session.GetFolderFromID(Application.ActiveExplorer.CurrentFolder.EntryID) 
set restrItems = Folder.Items.Restrict(" TO = '[email protected]' ") 

또한 aquery에서 Recipients 속성을 지정할 수 있습니다 -이 (/ CC/BB에) 모든 유형의 수신자에 대해 일치됩니다

set restrItems = Folder.Items.Restrict(" Recipients = '[email protected]' ") 
관련 문제