Outlook for Mac OLM 파일 관리

OLM(Outlook for Mac Archive)은 Microsoft Outlook for Mac과 연관된 파일 형식으로, 이메일 메시지, 연락처, 일정 항목, 작업 및 기타 Outlook 데이터를 Mac 컴퓨터에 보관하고 저장하는 데 사용됩니다. OLM 파일은 백업 또는 아카이브 형식으로 작동하여 사용자가 Outlook for Mac 데이터를 추후에 참조하거나 마이그레이션할 수 있도록 저장합니다. OLM 파일은 Outlook for Mac 전용이며 Windows용 Outlook에서 사용하는 PST(Personal Storage Table) 파일 형식과 호환되지 않는다는 점에 유의해야 합니다. 다른 플랫폼 간에 Outlook 데이터를 전송하려면 변환 도구가 필요합니다. Aspose.Email은 OLM 파일을 열고, 읽고, 기타 기능을 제공하는 이러한 도구를 제공합니다.

Outlook OLM 파일 열기

OLM 형식 파일은 두 가지 방법으로 열 수 있습니다:

  • 생성자 사용
  • 정적 ‘from_file’ 메서드를 사용하여

Python 생성자를 사용하여 Outlook OLM 파일 열기

파일을 열려면, 다음의 생성자를 호출합니다 OlmStorage 클래스이며 전체 파일 이름이나 스트림을 인수로 전달합니다:

import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage(fileName)

Python의 정적 메서드 FromFile을 사용하여 OLM 파일 열기

파일을 열려면 해당 클래스의 정적 메서드 ‘from_file’을 사용합니다. OlmStorage 클래스이며 전체 파일 이름이나 스트림을 인수로 전달합니다:

import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)

OLM 파일의 폴더 및 이메일 관리

폴더 구조를 재귀적으로 접근

Aspose.Email API를 사용하면 print_all_folders 함수를 통해 OLM 파일에서 가져온 폴더 계층을 시각화하고 표시할 수 있습니다. 이 함수는 해당 클래스의 folder_hierarchy 속성을 인수로 받습니다. OlmStorage 클래스와 들여쓰기 수준을 입력으로 받아 계층을 재귀적으로 순회하며 각 폴더 이름을 적절한 들여쓰기와 함께 출력합니다.

아래는 print_all_folders 함수를 사용해 OLM 파일의 폴더 계층을 표시하는 코드 샘플입니다:

import aspose.email as ae


def print_all_folders(folder_hierarchy, indent):
    for folder in folder_hierarchy:
        print(f"{indent}{folder.name}")
        print_all_folders(folder.sub_folders, indent + "-")

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage(fileName)
print_all_folders(olm.folder_hierarchy, "")

위의 코드 샘플은 재귀 함수를 통해 OLM 파일의 폴더 계층을 보다 구조적이고 읽기 쉬운 형식으로 표시하도록 설계되었습니다.

폴더 구조 직접 접근

Aspose.Email을 사용하면 해당 클래스의 get_folders() 메서드를 통해 OLM 파일에서 폴더 구조에 직접 접근할 수 있습니다. OlmStorage 클래스.

아래는 폴더 구조에 직접 접근하는 코드 샘플입니다:

import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folders = olm.get_folders()

이름으로 폴더 가져오기

해당 클래스의 get_folder(name, ignore_case) 메서드를 사용하면 이름으로 어떤 폴더든 가져올 수 있습니다. OlmStorage 클래스. 이 메서드는 폴더 이름과 대소문자 구분 매개변수를 필요로 합니다.

다음은 폴더 이름으로 폴더를 가져오는 예시 코드입니다:

import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)

Outlook OLM 파일에서 이메일 목록 가져오기

Aspose.Email 라이브러리를 사용하여 Outlook for Mac (OLM) 파일에서 이메일 메시지를 읽고 추출할 수 있습니다. 다음 메서드를 사용해 이메일 목록을 가져올 수 있습니다: OlmFolder 폴더를 나타내는 클래스:

  • enumerate_messages() - 폴더의 각 이메일 메시지를 반복합니다. 이 메서드는 메시지를 해당 클래스의 인스턴스로 반환합니다. OlmMessageInfo 클래스는 각 이메일 메시지의 기본 정보(제목, 보낸 사람, 날짜 등)를 제공합니다.
  • enumerate_mapi_messages() - 폴더의 각 이메일 메시지를 반복하지만, 이 경우 메시지를 해당 클래스의 인스턴스로 반환합니다. MapiMessage 클래스는 이메일 메시지를 보다 상세하고 MAPI 전용 방식으로 나타냅니다. 이메일 메시지의 다양한 속성 및 세부 정보를 액세스할 수 있어 보다 고급 및 특수한 처리가 가능합니다.

아래 코드 샘플은 *enumerate_messages()*를 사용해 기본 이메일 제목을 추출하고, *enumerate_mapi_messages()*를 사용해 메시지를 .msg 파일로 저장함으로써 Outlook OLM 파일에서 기본 이메일 제목을 추출하고 상세 이메일 메시지를 저장하는 방법을 보여줍니다.

’enumerate_messages()’ 메서드를 사용해 기본 이메일 정보 추출

import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)

for message_info in folder.enumerate_messages():
    print(message_info.subject)

’enumerate_mapi_messages()’ 메서드를 사용해 상세 이메일 메시지 저장

import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)

for msg in folder.enumerate_mapi_messages():
    msg.save(f"{msg.subject}.msg")

OLM 폴더의 전체 메시지 수 가져오기

다음은 OlmFolder 클래스는 다음 메서드를 통해 더 많은 옵션을 제공합니다:

  • has_messages - 현재 폴더에 메시지가 있는지 여부를 나타내는 값을 가져옵니다.
  • message_count - 메시지 수를 가져옵니다.

아래 코드 샘플은 이러한 메서드 사용 방법을 보여줍니다:

import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)

if folder.has_messages:
   print(f"Message count: {folder.message_count}")

Outlook OLM 메시지의 수정 날짜 가져오기 또는 설정하기

Aspose.Email을 사용하면 이메일 메시지의 마지막 수정 시간 정보를 가져올 수 있습니다. 해당 클래스의 modified_date 속성은 OlmMessageInfo 클래스는 메시지가 마지막으로 수정된 날짜와 시간을 나타냅니다.

다음은 해당 속성 사용을 보여주는 예시입니다:

import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)

for message_info in folder.enumerate_messages():
    modifiedDate = message_info.modified_date

OLM 콘텐츠 추출

Outlook OLM 파일에서 이메일 추출

해당 클래스의 extract_mapi_message(message_info) 메서드를 사용하여 이메일 저장소에서 실제 MAPI 메시지 데이터를 가져올 수 있습니다. OlmStorage 클래스. 이 메서드는 제공된 message_info를 기반으로 저장소에서 MAPI 메시지를 추출합니다.

아래 코드 샘플은 이 메서드 사용 방법을 보여줍니다:

import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)

for message_info in folder.enumerate_messages():
    msg = olm.extract_mapi_message(message_info)

식별자를 사용해 OLM 파일에서 Outlook 메시지 추출

MAPI 메시지 데이터에 접근하려면, 해당 클래스의 entry_id 속성을 사용하여 메시지의 고유 식별자(Entry ID)를 얻을 수 있습니다. OlmMessageInfo 클래스. 그런 다음, 해당 클래스의 extract_mapi_message(id) 메서드를 활용할 수 있습니다. OlmStorage 클래스는 엔트리 ID를 매개변수로 전달하여 해당 엔트리 ID와 연결된 MAPI 메시지를 가져옵니다. 아래 코드 스니펫은 이러한 기능의 사용을 보여줍니다:


import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)

for message_info in folder.enumerate_messages():
    msg = olm.extract_mapi_message(message_info.entry_id)

OLM 폴더 구조 관리

Outlook OLM 파일에서 폴더 경로 가져오기

Aspose.Email을 사용하면 Outlook OLM 파일 내 폴더의 계층 경로나 위치를 가져올 수 있습니다. API는 해당 클래스의 path 속성을 제공합니다. OlmFolder 클래스는 폴더 경로를 반환합니다. 아래 코드 스니펫은 이 속성의 사용을 보여줍니다:

import aspose.email as ae


def print_path(storage, folders):
    for folder in folders:
        # print the current folder path
        print(folder.path)

        if folder.sub_folders:
            print_path(storage, folder.sub_folders)


fileName = "my.olm"
olm = ae.storage.olm.OlmStorage(fileName)
print_path(olm, olm.folder_hierarchy)

Outlook OLM 폴더의 항목 수 세기

Aspose.Email은 Outlook OLM 파일의 특정 폴더에 포함된 이메일 메시지 총 수를 셀 수 있는 기능을 제공합니다. 해당 클래스의 message_count 속성은 OlmFolder 클래스는 OLM 파일의 특정 폴더에 저장된 총 항목(이메일 메시지) 수를 반환합니다. 아래 코드 스니펫은 이 속성의 사용을 보여줍니다:

import aspose.email as ae


def print_message_count(folders):
    for folder in folders:
        print(f"Message Count [{folder.name}]: {folder.message_count}")


fileName = "my.olm"
olm = ae.storage.olm.OlmStorage(fileName)
print_message_count(olm.folder_hierarchy)

Outlook OLM 파일의 총 항목 수 얻기

클래스의 get_total_items_count() 메서드 OlmStorage 클래스는 아래 코드 샘플에 표시된 바와 같이 OLM 저장소에 포함된 메시지 항목의 총 수를 반환합니다.

import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage(fileName)
count = olm.get_total_items_count()

Outlook 카테고리 관리

Outlook 카테고리 색상 가져오기

Aspose.Email를 사용하면 OLM 파일에 저장된 Outlook 항목 카테고리와 연결된 카테고리 색상을 손쉽게 가져오고 활용할 수 있습니다. the OlmItemCategory 클래스는 카테고리 이름과 16진수 형식으로 표시된 해당 색상에 접근할 수 있게 합니다. the OlmStorage 클래스는 OLM 저장소에서 카테고리 목록을 가져오는 GetCategories() 메서드를 제공합니다. 아래 코드 샘플을 구현하면 OML 저장소 파일에서 사용된 모든 카테고리를 손쉽게 가져오고 카테고리 이름과 색상을 확인할 수 있습니다.

with OlmStorage.FromFile("storage.olm") as olm:
    categories = olm.GetCategories()
    
    for category in categories:
        print(f"Category name: {category.Name}")
        
        # Color is represented as a hexadecimal value: #rrggbb
        print(f"Category color: {category.Color}")

또한 폴더의 메시지를 반복하면서 카테고리 이름에 따라 해당 카테고리 색상을 액세스하여 특정 메시지와 연결된 카테고리 색상을 가져올 수 있습니다.

for msg in olm.EnumerateMessages(folder):
    if msg.Categories is not None:
        for msgCategory in msg.Categories:
            print(f"Category name: {msgCategory}")
            categoryColor = next((c.Color for c in categories if c.Name.lower() == msgCategory.lower()), None)
            if categoryColor is not None:
                print(f"Category color: {categoryColor}")