Python에서 MSG 파일 파싱하는 방법
aspose-email-foss for Python은 Microsoft Office 의존성 없이 Outlook MSG 파일을 읽기 위한 순수 Python API를 제공합니다. 모든 메시지 데이터에 접근하려면 파일을 MapiMessage 객체에 로드하십시오.
단계별 가이드
1단계: 패키지 설치
pip install aspose-email-fossPython 3.10 이상이 필요합니다.
2단계: MapiMessage 클래스 가져오기
from aspose.email_foss.msg import MapiMessage3단계: 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.body이 None을 반환할 때 msg.body_html를 확인하십시오.
유효성 검사 경고
로드된 파일에 대한 규정 준수 경고 튜플을 보려면 msg.validation_issues에 액세스하십시오.
자주 묻는 질문 (FAQ)
EML 파일을 읽을 수 있나요?
직접적으로는 불가능합니다. 라이브러리는 MSG (CFB) 형식을 처리합니다. EML 콘텐츠를 EmailMessage 객체로 먼저 변환한 다음, MapiMessage.from_email_message()을 사용하십시오.
로드가 모든 첨부 데이터를 메모리로 읽어들입니까?
아니오. 첨부 메타데이터는 필요에 따라 읽어옵니다. 경량 반복을 위해 iter_attachments_info()을 사용하십시오.
스레드 안전한가요?
각 MapiMessage 인스턴스는 독립적입니다. 별도의 인스턴스에서 동시에 읽는 것은 안전합니다.