새 위치에 저장하지 않고 C#의 Outlook 이메일 첨부 파일에 액세스하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/1608507

문제

나는 사용 중입니다 Microsoft.Office.Interop.Outlook C#에서 사서함에 액세스하고 특정 파일 첨부 파일이있는 메시지를 찾으십시오. 첨부 파일과 상호 작용해야합니다.

현재 파일을 새 위치에 저장하고 거기에서 액세스하고 있습니다. 이 복사 프로세스로 인해 속도가 느려집니다. 나는 이상적으로 메모리에 저장되는 곳에서 파일에 액세스하는 것을 좋아하지만 Outlook.Attachment.PathName 필드가 널 돌아오고 있습니다.

메시지는 Exchange 서버에 저장됩니다.

직접 액세스 할 수 있습니까? 아니면 파일을 계속 저장해야합니까?

도움이 되었습니까?

해결책

Outlook.Attachment.PathName 디스크 위치를 의미합니다. 첨부 파일은 파일입니다. 상호 작용하려면 파일처럼 취급해야하며 로컬 디스크에 저장하는 것을 의미합니다.

그만큼 Outlook.Attachment 객체에는 실제로 첨부 된 파일이 포함되어 있지 않습니다. 일부 관련 메타 데이터와 함께 첨부 된 파일에 대한 링크가 포함되어 있습니다.

다른 팁

Outlook Object 모델을 통해 어떤 식 으로든 가능한지 모르겠지만 Mapi는 반드시 당신을 허용합니다.

메시지를 열어야합니다 MAPIObject, an IMessage. 거기에서 사용합니다 IMessage::OpenAttach(), 반환합니다 IAttach.
부착 크기가 저장됩니다 PR_ATTACH_SIZE, 실제 데이터 PR_ATTACH_DATA_BIN.

언제나처럼, 구원 아마도 더 쉬운 방법이있을 것입니다.

편집하다:
MAPI를 통한 액세스는 어쨌든 Outlook이 내부적으로하는 일입니다. 적어도 Exchange 캐시 모드를 사용할 때는 합리적으로 빠르야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top