Mengelola File OLM Outlook untuk Mac

OLM (Outlook for Mac Archive) adalah format file yang terkait dengan Microsoft Outlook untuk Mac. Ini digunakan untuk mengarsipkan dan menyimpan pesan email, kontak, item kalender, tugas, dan data Outlook lainnya di komputer Mac. File OLM berfungsi sebagai format cadangan atau arsip, memungkinkan pengguna menyimpan data Outlook untuk Mac mereka untuk referensi atau migrasi di masa mendatang. Penting untuk dicatat bahwa file OLM bersifat khusus untuk Outlook untuk Mac, dan tidak kompatibel dengan format file PST (Personal Storage Table) yang digunakan oleh Outlook di Windows. Jika Anda perlu memindahkan data Outlook antar platform, alat konversi akan sangat berguna. Aspose.Email menawarkan alat tersebut termasuk membuka, membaca, dan fungsionalitas lainnya untuk bekerja dengan file OLM.

Membuka File OLM Outlook

File format OLM dapat dibuka dengan dua cara:

  • menggunakan konstruktor
  • menggunakan metode statis ‘from_file’

Buka File OLM Outlook Menggunakan Konstruktor Python

Untuk membuka file, panggil konstruktor dari OlmStorage kelas dan berikan nama file lengkap atau stream sebagai argumen ke dalamnya:

import aspose.email as ae

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

Buka File OLM Menggunakan Metode Statis FromFile pada Python

Untuk membuka file, gunakan metode statis ‘from_file’ dari OlmStorage kelas dan berikan nama file lengkap atau stream sebagai argumen ke dalamnya:

import aspose.email as ae

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

Manajemen Folder dan Email dalam File OLM

Akses Struktur Folder secara Rekursif

API Aspose.Email memungkinkan Anda memvisualisasikan dan menampilkan hierarki folder yang diambil dari file OLM menggunakan fungsi print_all_folders. Fungsi ini mengambil properti folder_hierarchy dari OlmStorage kelas, bersama dengan tingkat indentasi sebagai input, dan secara rekursif menelusuri hierarki untuk mencetak setiap nama folder dengan indentasi yang tepat.

Berikut contoh kode yang menunjukkan cara menggunakan fungsi print_all_folders untuk menampilkan hierarki folder dari file 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, "")

Contoh kode di atas dimaksudkan untuk menampilkan hierarki folder dari file OLM melalui fungsi rekursif dalam format yang lebih terstruktur dan mudah dibaca.

Akses Struktur Folder secara Langsung

Aspose.Email juga memungkinkan akses langsung ke struktur folder dari file OLM menggunakan metode get_folders() dari OlmStorage kelas.

Berikut contoh kode untuk mengakses struktur folder secara langsung:

import aspose.email as ae

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

Ambil Folder berdasarkan Nama

Dimungkinkan untuk mengambil folder apa pun berdasarkan namanya menggunakan metode get_folder(name, ignore_case) dari OlmStorage kelas. Metode ini memerlukan parameter nama folder dan sensitivitas huruf.

Berikut contoh kode yang menggambarkan cara mengambil folder berdasarkan namanya:

import aspose.email as ae

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

Daftar Email dari File OLM Outlook

Pustaka Aspose.Email dapat digunakan untuk membaca dan mengekstrak pesan email dari file Outlook for Mac (OLM). Anda dapat mendapatkan daftar email menggunakan metode berikut dari OlmFolder kelas yang mewakili folder:

  • enumerate_messages() - Mengiterasi setiap pesan email dalam folder. Metode ini mengembalikan pesan sebagai instance dari OlmMessageInfo kelas yang menyediakan informasi dasar tentang setiap pesan email, seperti subjek, pengirim, tanggal, dll.
  • enumerate_mapi_messages() - Juga mengiterasi setiap pesan email dalam sebuah folder, tetapi dalam kasus ini, mengembalikan pesan sebagai instance dari MapiMessage kelas yang mewakili pesan email dengan cara yang lebih detail dan khusus MAPI. Ini menyediakan akses ke berbagai properti dan detail pesan email, memungkinkan pemrosesan yang lebih maju dan khusus.

Contoh kode di bawah ini menunjukkan cara mengekstrak subjek email dasar dan menyimpan pesan email detail dari file OLM Outlook dengan menggunakan enumerate_messages() untuk mengekstrak subjek dan enumerate_mapi_messages() untuk menyimpan pesan sebagai file .msg.

Ekstrak Informasi Email Dasar menggunakan Metode ’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)

Simpan Pesan Email Detail menggunakan Metode ’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")

Ambil Jumlah Total Pesan di Folder OLM

The OlmFolder kelas memberi Anda lebih banyak opsi dengan metode berikut:

  • has_messages - Mendapatkan nilai yang menunjukkan apakah folder saat ini memiliki pesan.
  • message_count - Mendapatkan jumlah pesan.

Contoh kode di bawah ini menunjukkan cara menggunakan metode-metode ini:

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}")

Dapatkan atau Atur Tanggal Modifikasi untuk Pesan OLM Outlook

Aspose.Email memungkinkan mengambil informasi tentang waktu modifikasi terakhir dari sebuah pesan email. Properti modified_date dari OlmMessageInfo kelas mewakili tanggal dan waktu ketika pesan terakhir diubah.

Berikut contoh yang menunjukkan penggunaan properti:

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

Mengekstrak Konten OLM

Ekstrak Email dari File OLM Outlook

Anda dapat mengambil data pesan MAPI yang sebenarnya dari penyimpanan email menggunakan metode extract_mapi_message(message_info) dari OlmStorage kelas. Metode ini mengekstrak pesan MAPI dari penyimpanan berdasarkan message_info yang diberikan.

Contoh kode di bawah menunjukkan cara menggunakan metode ini:

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)

Ekstrak Pesan Outlook dari File OLM berdasarkan Identifier

Untuk mengakses data pesan MAPI, Anda dapat menggunakan properti entry_id untuk memperoleh pengidentifikasi unik (Entry ID) dari sebuah pesan dengan menggunakan OlmMessageInfo kelas. Kemudian, Anda dapat memanfaatkan metode extract_mapi_message(id) dari OlmStorage kelas, dengan melewatkan entry ID sebagai parameter untuk mengambil pesan MAPI yang terkait dengan entry ID tersebut. Contoh kode berikut menunjukkan penggunaan fitur-fitur ini:


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)

Manajemen Struktur Folder OLM

Dapatkan Jalur Folder dalam File OLM Outlook

Aspose.Email memungkinkan Anda mendapatkan jalur hierarkis atau lokasi folder dalam file OLM Outlook. API menyediakan properti path dari OlmFolder kelas yang mengembalikan jalur folder. Contoh kode berikut menunjukkan penggunaan properti ini:

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)

Hitung Item dalam Folder OLM Outlook

Aspose.Email menyediakan kemampuan untuk menghitung total jumlah pesan email yang terdapat dalam folder tertentu dari file OLM Outlook. Properti message_count dari OlmFolder kelas mengembalikan total jumlah item (pesan email) yang disimpan dalam folder tertentu di file OLM. Contoh kode berikut menunjukkan penggunaan properti ini:

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)

Dapatkan Jumlah Total Item dalam File OLM Outlook

Metode get_total_items_count() dari OlmStorage kelas mengembalikan total jumlah item pesan yang terdapat dalam penyimpanan OLM seperti yang ditunjukkan dalam contoh kode di bawah:

import aspose.email as ae

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

Manajemen Kategori Outlook

Mengambil Warna Kategori Outlook

Dengan Aspose.Email, Anda dapat dengan mudah mengambil dan menggunakan warna kategori yang terkait dengan kategori item Outlook yang disimpan dalam file OLM. OlmItemCategory kelas memungkinkan Anda mengakses nama kategori dan warna masing-masing yang direpresentasikan dalam format heksadesimal. OlmStorage kelas memiliki metode GetCategories() untuk mengambil daftar kategori dari penyimpanan OLM. Dengan mengimplementasikan contoh kode di bawah, Anda dapat dengan mudah mengambil semua kategori yang digunakan dari file penyimpanan OML dan mengakses nama kategori beserta warnanya.

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}")

Selain itu, Anda dapat mengambil warna kategori yang terkait dengan pesan tertentu dengan mengiterasi pesan dalam folder dan mengakses warna kategori yang sesuai berdasarkan nama kategori.

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}")