Python에서 MSG 파일 파싱하는 방법

Python에서 MSG 파일 파싱하는 방법

aspose-email-foss for Python은 Microsoft Office 의존성 없이 Outlook MSG 파일을 읽기 위한 순수 Python API를 제공합니다. 모든 메시지 데이터에 접근하려면 파일을 MapiMessage 객체에 로드하십시오.

단계별 가이드

1단계: 패키지 설치

pip install aspose-email-foss

Python 3.10 이상이 필요합니다.


2단계: MapiMessage 클래스 가져오기

from aspose.email_foss.msg import MapiMessage

3단계: MSG 파일 로드

msg = MapiMessage.from_file("message.msg")

잘못된 파일을 관대하게 구문 분석하려면 strict=False을 전달하십시오:

msg = MapiMessage.from_file("message.msg", strict=False)

4단계: 메시지 속성에 액세스

print(f"Subject: {msg.subject}")
print(f"Body: {msg.body}")
print(f"HTML Body: {msg.body_html[:200] if msg.body_html else 'None'}")
print(f"Message Class: {msg.message_class}")

5단계: 첨부 파일 나열

for att in msg.iter_attachments_info():
    name = att.storage_name
    is_embedded = att.is_embedded_message
    print(f"Attachment: {name}, embedded={is_embedded}")

6단계: 저수준 CFB 구조 검사

from aspose.email_foss.cfb import CFBReader

reader = CFBReader.from_file("message.msg")
print(f"Directory entries: {reader.directory_entry_count}")
for entry in reader.iter_streams():
    print(f"  Stream: {entry}")
reader.close()

일반적인 문제 및 해결 방법

CFBError 로드 중

파일이 유효한 CFB 컨테이너가 아닙니다. 실제 Outlook MSG 파일인지 확인하고, EML이 아닌지 확인하십시오.

본문은 비어 있지만 HTML 본문에 내용이 있습니다

일부 메시지는 콘텐츠를 HTML에만 저장합니다. msg.bodyNone을 반환할 때 msg.body_html를 확인하십시오.

유효성 검사 경고

로드된 파일에 대한 규정 준수 경고 튜플을 보려면 msg.validation_issues에 액세스하십시오.


자주 묻는 질문 (FAQ)

EML 파일을 읽을 수 있나요?

직접적으로는 불가능합니다. 라이브러리는 MSG (CFB) 형식을 처리합니다. EML 콘텐츠를 EmailMessage 객체로 먼저 변환한 다음, MapiMessage.from_email_message()을 사용하십시오.

로드가 모든 첨부 데이터를 메모리로 읽어들입니까?

아니오. 첨부 메타데이터는 필요에 따라 읽어옵니다. 경량 반복을 위해 iter_attachments_info()을 사용하십시오.

스레드 안전한가요?

MapiMessage 인스턴스는 독립적입니다. 별도의 인스턴스에서 동시에 읽는 것은 안전합니다.

 한국어