2012-06-26 1 views
2

.msg 파일에서 열린 Outlook 메시지에 해당하는 MailItem에 대해 RDOMail 인스턴스를 만드는 방법이 있습니까?.msg 파일에서 열린 MailItem 용 RDOMail 받기

내 일반적인 접근 방식은 Inspector에서 CurrentItem를 얻을 MailItem에 캐스팅, 그 EntryIDStoreID 값을 검색하고, 마지막으로 GetMessageFromID 방법을 통해 RDOSession에서로드하는 것입니다.

그러나 .msg에서 열어 본 메시지의 경우 EntryID 속성은 null을 반환합니다. 이 문제를 해결할 다른 방법이 있습니까? 대신 GetMessageFromMsgFile 메서드를 사용할 수 있다고 가정하지만 MailItem에서 메시지의 전체 경로를 검색하는 방법은 무엇입니까?

P. 이 솔루션은 Outlook 2003 개체 모델에서 이상적으로 작동해야합니다.

답변

1

당신은 여기에 두 가지 방법을 할 수있는 ... 디스크에 MailItem_MailItem.SaveAs()를 사용

  1. 저장. 그런 다음 GetMessageFromMsgFile을 사용하십시오.
  2. (저장)에 MailItem을 저장하여 보존하고 EntryIDStoreID으로 지정합니다. MailItem.Save()MailItem.Move(tempFolder)을 사용하여 MSG를 폴더에 유지하십시오. 일반적으로 hidden folder for this storage swap을 사용합니다. 시작할 때 또는 정기적으로이 스왑 폴더를 정기적으로 제거해야합니다 (Outlook에 오래 잠긴 잠금이 있으므로 try/catches을 사용하는 것이 좋습니다).
+0

감사! 이 작업을 UI 스레드에서 수행해야하기 때문에 저축과 관련이없는 좀 더 가벼운 (성능면에서) 뭔가를 기대했지만, 두 번째 방법을 사용하겠습니다. – User3810621