인라인 첨부 파일과 일반 첨부 파일 구분

이메일 메시지 본문에 인라인 이미지와 일반 첨부 파일이 모두 포함되는 일반적인 시나리오입니다. 사용하여 MailMessage 클래스에서 인라인 첨부 파일을 추출할 수 있습니다 LinkedResourceCollection 클래스이며, 일반 첨부 파일은 다음을 사용하여 접근/추출할 수 있습니다 AttachmentCollection 메시지의 클래스입니다. 그러나 메시지를 Aspose.Email.Mapi.MapiMessage 클래스로 로드하면 모든 인라인 이미지와 일반 첨부 파일이 동일한 MapiAttachmentCollection 클래스에서 접근 가능해집니다. 따라서 MapiMessage를 사용할 때 인라인 첨부와 일반 첨부를 구분할 수 있는 방법이 필요합니다.

Aspose.Email를 사용해 인라인 및 일반 첨부 파일 구분

이 문서에서는 MapiMessage를 사용해 인라인 첨부 파일과 일반 첨부 파일을 구분하는 방법을 설명합니다. 이 구분을 결정하기 위해 MapiMessage의 본문 유형을 다음과 같이 고려합니다:

Plain Text 본문: 일반 텍스트 본문 유형의 이메일은 확인할 필요가 없으며, 해당 메시지의 모든 첨부 파일은 항상 일반 첨부 파일입니다.

Html 본문: HTML 본문 유형의 메시지에서는 첨부 파일이 PR_ATTACH_FLAGS(0x37140003) 속성을 포함할 뿐만 아니라 인라인 첨부 파일인 경우 값이 0x00000004이어야 합니다. 이 조건이 충족되면 PR_ATTACH_CONTENT_LOCATION 및 PR_ATTACH_CONTENT_ID 태그를 기반으로 첨부 파일의 성격을 결정합니다. 그러나 PR_ATTACH_FLAGS Mapi 태그가 없을 경우, 첨부 파일은 PR_ATTACH_DISPOSITION(0x3716001F 또는 0x3716001E) 속성을 확인하여 첨부 유형을 판단합니다.

Rtf 본문: 본문이 RTF인 경우 모든 OLE 첨부 파일은 인라인 첨부 파일입니다. 모든 OLE 첨부 파일의 PR_ATTACH_METHOD 값은 0x00000006과 같습니다.

다음 코드 샘플은 인라인 첨부 파일과 일반 첨부 파일을 프로그래밍으로 구분하는 방법을 보여줍니다. IsInlineAttachment 함수는 첨부 파일과 Message BodyType을 입력 매개변수로 받아 첨부 파일이 인라인인 경우 true를 반환합니다.