기능 및 특성
기능 및 특성
이 페이지는 모든 주요 기능을 다룹니다 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_issuesMSG 형식 준수 문제를 확인하기 위해 - 그
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 객체.
스레드 안전성이 지원되나요?
각 MapiMessage 및 CFBReader 인스턴스는 독립적입니다. 별도의 스레드에서 별개의 인스턴스에 동시에 접근해도 안전합니다.
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 | 메시지의 수신자 |
MapiProperty | MAPI 속성 항목 |
CFBReader | 저수준 CFB 컨테이너 리더 |
CFBWriter | 저수준 CFB 컨테이너 라이터 |
MsgReader | 저수준 MSG 구조 리더 |