기능 및 특성

기능 및 특성

이 페이지는 모든 주요 기능을 다룹니다 aspose-email-foss 26.3 작동하는 Python 예제와 함께.


MSG 파일 읽기

MSG 파일을 로드하고 핵심 속성에 접근합니다:

from aspose.email_foss.msg import MapiMessage

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

print(f"Subject: {msg.subject}")
print(f"Body: {msg.body}")
print(f"HTML Body: {msg.body_html}")
print(f"Message Class: {msg.message_class}")

MSG 파일 만들기

새 메시지를 처음부터 생성합니다:

from aspose.email_foss.msg import MapiMessage

msg = MapiMessage.create("Meeting Notes", "Please find the notes attached.")
msg.save("new_message.msg")

기존 메시지에 제목과 본문을 설정합니다:

msg.subject = "Updated Subject"
msg.body = "Updated body text"
msg.save("updated.msg")

수신자

표시 이름 및 유형과 함께 수신자를 추가합니다:

from aspose.email_foss.msg import MapiMessage, RECIPIENT_TYPE_CC

msg = MapiMessage.create("Hello", "Message body")
msg.add_recipient("alice@example.com", display_name="Alice Smith")
msg.add_recipient("bob@example.com", display_name="Bob Jones", recipient_type=RECIPIENT_TYPE_CC)
msg.save("with_recipients.msg")

첨부 파일

바이너리 파일 첨부를 추가합니다:

with open("report.pdf", "rb") as f:
    data = f.read()

msg.add_attachment("report.pdf", data, mime_type="application/pdf")
msg.save("with_attachment.msg")

MSG 메시지를 중첩 첨부 파일로 포함합니다:

inner = MapiMessage.create("Inner Subject", "Inner body")
msg.add_embedded_message_attachment(inner, filename="embedded.msg", mime_type="application/vnd.ms-outlook")
msg.save("with_embedded.msg")

MAPI 속성

속성 ID로 MAPI 속성을 읽고 씁니다:

from aspose.email_foss.msg import PropertyId

# Read a property
subject = msg.get_property(PropertyId.SUBJECT)

# Set a property
msg.set_property(PropertyId.SUBJECT, "New Subject")

모든 속성을 반복합니다:

for prop in msg.iter_properties():
    print(f"Tag: {prop.property_tag:#010x}")

이메일 변환

MSG (MAPI)와 이메일 (RFC 5322) 형식 간 변환:

# MSG to email string
email_str = msg.to_email_string()
print(email_str[:500])

# MSG to EmailMessage object
email_msg = msg.to_email_message()

# EmailMessage back to MapiMessage
msg2 = MapiMessage.from_email_message(email_msg)
msg2.save("roundtrip.msg")

저수준 CFB 작업

CFB 컨테이너 구조를 직접 읽기:

from aspose.email_foss.cfb import CFBReader

reader = CFBReader.from_file("message.msg")
print(f"File size: {reader.file_size} bytes")
print(f"Sectors: {reader.fat_sector_count}")
print(f"Entries: {reader.directory_entry_count}")

for entry in reader.iter_storages():
    print(f"Storage: {entry}")

for entry in reader.iter_streams():
    print(f"Stream: {entry}")

reader.close()

CFB 문서 쓰기:

from aspose.email_foss.msg import MsgWriter

data = msg.to_bytes()
with open("output.msg", "wb") as f:
    f.write(data)

팁 및 모범 사례

  • 항상 호출하십시오 msg.close() 또는 읽기가 끝난 후 파일 핸들을 해제하기 위해 컨텍스트 매니저를 사용하십시오
  • 사용하십시오 msg.validation_issues MSG 형식 준수 문제를 확인하기 위해
  • strict 매개변수는 MapiMessage.from_file() 오류 허용 범위를 제어합니다 — 다음으로 설정 False 관대한 구문 분석을 위해
  • 모든 첨부 파일 데이터는 … 동안 메모리로 로드됩니다 from_file() — 사용하십시오 att.data 바이트에 직접 접근하기 위해; iter_attachments_info() 이미 채워진 첨부 파일 목록에 대한 편리한 이터레이터입니다
  • 사용하십시오 to_email_string() 전체 이메일 객체를 만들지 않고 빠른 텍스트 미리보기를 위해

일반적인 문제

문제원인수정
CFBError 로드할 때유효한 CFB/MSG 파일이 아닙니다파일이 실제 Outlook MSG인지 확인하십시오
로드 후 본문이 비어 있습니다본문이 HTML 형식으로만 저장되었습니다확인 msg.body_html 대신 msg.body
수신자가 누락되었습니다MSG에 수신자 저장소가 없습니다MSG 형식에서는 수신자가 선택 사항입니다; 확인하십시오 iter_attachments_info()

FAQ

지원되는 MSG 형식 버전은 무엇인가요?

이 라이브러리는 CFB v3 및 v4 형식의 MSG 파일을 읽고 쓰며, Microsoft Outlook과 호환됩니다.

EML 파일을 읽을 수 있나요?

직접적으로는 불가능합니다. 라이브러리가 MSG 형식을 처리합니다. 사용하십시오 MapiMessage.from_email_message() RFC 5322에서 변환하려면 EmailMessage 객체.

스레드 안전성이 지원되나요?

MapiMessageCFBReader 인스턴스는 독립적입니다. 별도의 스레드에서 별개의 인스턴스에 동시에 접근해도 안전합니다.


API 레퍼런스 요약

클래스 / 메서드설명
MapiMessage고수준 MSG 메시지 표현
MapiMessage.from_file()MSG 파일 로드
MapiMessage.create()새 MSG 메시지 만들기
MapiMessage.save()MSG 파일로 저장
MapiMessage.to_email_message()EmailMessage (RFC 5322) 로 변환
MapiMessage.from_email_message()EmailMessage에서 MSG로 변환
MapiMessage.add_recipient()수신자 추가
MapiMessage.add_attachment()바이너리 첨부 파일 추가
MapiAttachment메시지의 첨부 파일
MapiRecipient메시지의 수신자
MapiPropertyMAPI 속성 항목
CFBReader저수준 CFB 컨테이너 리더
CFBWriter저수준 CFB 컨테이너 라이터
MsgReader저수준 MSG 구조 리더
 한국어