OLM을 PST로 변환
OLM을 PST로 변환
OLM(Outlook for Mac)은 Microsoft Outlook for Mac에서 이메일 메시지, 연락처, 캘린더, 작업 및 기타 데이터를 저장하는 파일 형식입니다. 이는 Outlook for Mac의 기본 파일 형식이므로 Windows용 Outlook에서 OLM 파일을 열 수 없습니다. Windows에서 OLM 파일을 다루려면 Aspose Email이 OLM 파일 전용 도구를 제공합니다. 이 도구는 OLM 파일을 Windows 환경에서 널리 지원되는 PST(Outlook 데이터 파일) 형식으로 변환합니다. PST 형식으로 변환한 후에는 데이터를 Windows용 Outlook이나 기타 호환 이메일 클라이언트에 가져올 수 있습니다.
주요 접근법
다음 코드 샘플은 Aspose.Email 라이브러리를 사용하여 Outlook OLM 파일을 PST 파일로 변환하는 방법을 보여줍니다. OLM 파일에서 각 폴더와 해당 메시지를 읽고 동일한 순서대로 새 PST 파일에 추가합니다.
- 다음의 인스턴스를 생성합니다. OlmStorage 소스 OLM 파일을 여는 클래스.
- 다음 사용 PersonalStorage.create 지정된 파일명과 형식 버전으로 새 PST 파일을 생성하는 메서드.
- OLM 파일에서 각 폴더와 해당 메시지를 재귀적으로 읽습니다.
- 원본 구조를 유지하면서 각 폴더와 해당 메시지를 PST 파일에 추가하려면 add_to_pst 함수를 사용하십시오.
import aspose.email as ae
olm = ae.storage.olm.OlmStorage("my.olm")
pst = ae.storage.pst.PersonalStorage.create("my.pst", ae.storage.pst.FileFormatVersion.UNICODE)
for folder in olm.folder_hierarchy:
add_to_pst(pst.root_folder, folder)
이 코드는 aspose.email 라이브러리를 사용하여 OLM 파일을 PST 파일로 변환하는 프로세스를 시작하는 메인 스크립트입니다. OLM 파일을 열고, 새 PST 파일을 만들고, add_to_pst 함수를 호출하여 데이터 전송 작업을 수행하는 방법을 보여줍니다. 이 스크립트는 마이그레이션의 진입점 역할을 하며, 폴더와 메시지의 세부 전송을 효율적으로 처리합니다.
재귀적 폴더 및 메시지 전송
이 접근 방식은 OLM 파일에서 PST 파일로 이메일 데이터를 마이그레이션하는 동안 폴더 및 메시지 처리 프로세스에 대한 보다 깊은 제어를 제공합니다. 아래 코드 샘플은 전송 로직을 정의하는 add_to_pst 함수를 활용합니다. 주요 역할은 폴더와 메시지를 재귀적으로 순회하여 PST 형식으로 올바르게 전송 및 복제되도록 하는 것입니다. 이 함수는 재사용성이 높으며 이러한 파일의 열기 및 생성 관리를 담당하는 더 큰 애플리케이션이나 스크립트의 일부로 사용될 것으로 기대됩니다.
def add_to_pst(pst_folder, olm_folder):
pst_sub_folder = pst_folder.get_sub_folder(olm_folder.name)
for msg in olm_folder.enumerate_mapi_messages():
if pst_sub_folder is None:
pst_sub_folder = pst_folder.add_sub_folder(olm_folder.name, get_container_class(msg.message_class))
pst_sub_folder.add_message(msg)
if pst_sub_folder is None:
pst_sub_folder = pst_folder.add_sub_folder(olm_folder.name)
for olm_sub_folder in olm_folder.sub_folders:
add_to_pst(pst_sub_folder, olm_sub_folder)
PST에서 폴더 유형 결정
OLM 파일을 PST로 변환할 때 폴더 구조가 보존되고 PST 파일의 각 폴더가 올바른 유형을 갖도록 해야 합니다. PST와 달리 OLM의 폴더는 미리 정의된 유형이 없습니다. 데이터를 정확히 분류하고 전송하려면 아래 단계를 따르세요:
- OLM 폴더에서 첫 번째 메시지를 읽고 유형을 결정합니다.
- 이 메시지 유형을 사용하여 분류 방법으로 PST에서 적절한 폴더 유형을 계산합니다.
- PST 파일에 지정된 유형의 폴더를 생성합니다.
- 메시지를 새로 만든 PST 폴더에 추가합니다.
OLM 폴더의 나머지 메시지는 이미 폴더 유형이 설정되었으므로 동일한 카테고리에 속한다고 가정합니다.
get_container_class 함수는 다양한 메시지 클래스를 올바른 PST 폴더 유형에 매핑하여 Outlook 항목을 분류하는 데 도움을 줍니다:
def get_container_class(message_class):
if message_class.startswith("IPM.Contact") or message_class.startswith("IPM.DistList"):
return "IPF.Contact"
if message_class.startswith("IPM.StickyNote"):
return "IPF.StickyNote"
if message_class.startswith("IPM.Activity"):
return "IPF.Journal"
if message_class.startswith("IPM.Task"):
return "IPF.Task"
if message_class.startswith("IPM.Appointment") or message_class.startswith("IPM.Schedule.meeting"):
return "IPF.Appointment"
return "IPF.Note"