MSGToDocument
MSGToDocument
Microsoft Outlook .msg 파일을 문서(document)로 변환해 주는 컴포넌트예요.
출처: 문서
본문
MSGToDocument 컴포넌트는 Microsoft Outlook .msg 파일을 문서로 변환해요. 이메일 메타데이터(발신자, 수신자, CC, BCC, 제목 등)와 본문 내용을 추출하고, .msg 파일 안의 첨부 파일은 ByteStream 객체로 추출해요.
더 알아보기 (Learn more)
이 변환기를 쓰려면 먼저 python-oxmsg 패키지를 설치해요.
pip install python-oxmsg
단독으로 쓰기
from haystack.components.converters.msg import MSGToDocument
from datetime import datetime
converter = MSGToDocument()
results = converter.run(
sources=["sample.msg"],
meta={"date_added": datetime.now().isoformat()},
)
documents = results["documents"]
attachments = results["attachments"]
print(documents[0].content)
파이프라인에서 쓰기
다음 구성은 .msg 이메일 파일을 Haystack 파이프라인 안에서 효율적으로 추출·전처리·인덱싱할 수 있게 해요.
from haystack import Pipeline
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack.components.routers import FileTypeRouter
from haystack.components.converters import MSGToDocument
from haystack.components.writers import DocumentWriter
router = FileTypeRouter(mime_types=["application/vnd.ms-outlook"])
document_store = InMemoryDocumentStore()
pipeline = Pipeline()
pipeline.add_component("router", router)
pipeline.add_component("converter", MSGToDocument())
pipeline.add_component("writer", DocumentWriter(document_store=document_store))
pipeline.connect("router.application/vnd.ms-outlook", "converter.sources")
pipeline.connect("converter.documents", "writer.documents")
file_names = ["email1.msg", "email2.msg"]
pipeline.run({"converter": {"sources": file_names}})