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 파일에 추가합니다.

  1. 다음의 인스턴스를 생성합니다. OlmStorage 소스 OLM 파일을 여는 클래스.
  2. 다음 사용 PersonalStorage.create 지정된 파일명과 형식 버전으로 새 PST 파일을 생성하는 메서드.
  3. OLM 파일에서 각 폴더와 해당 메시지를 재귀적으로 읽습니다.
  4. 원본 구조를 유지하면서 각 폴더와 해당 메시지를 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의 폴더는 미리 정의된 유형이 없습니다. 데이터를 정확히 분류하고 전송하려면 아래 단계를 따르세요:

  1. OLM 폴더에서 첫 번째 메시지를 읽고 유형을 결정합니다.
  2. 이 메시지 유형을 사용하여 분류 방법으로 PST에서 적절한 폴더 유형을 계산합니다.
  3. PST 파일에 지정된 유형의 폴더를 생성합니다.
  4. 메시지를 새로 만든 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"