File Penyimpanan Mbox

Tujuan utama artikel ini adalah untuk membantu Anda mempelajari format mbox dan menawarkan potongan kode yang dapat membantu dalam proses membaca file mbox. Anda akan mendapatkan pengetahuan tentang cara mengurai file mbox, serta cara mengakses, melihat, dan menyimpan pesan yang ada di dalamnya.

Tentang Format Mbox

Format mbox memiliki arti penting karena sejarahnya yang panjang dan penerimaan luas sebagai format standar untuk menyimpan pesan email. Ini adalah format file teks biasa yang memungkinkan beberapa pesan email digabungkan dan disimpan dalam satu file. Kesederhanaan dan kompatibilitas format ini di berbagai klien dan sistem email menjadikannya pilihan populer untuk pengarsipan dan transfer data email. Selain itu, format mbox mempertahankan metadata penting seperti pengirim, penerima, subjek, dan stempel waktu, memastikan integritas pesan tetap terjaga.

Klien email paling populer yang kompatibel dengan format ini adalah:

  • Thunderbird - klien email sumber terbuka yang banyak digunakan yang menggunakan format mbox untuk menyimpan pesan email. Itu menyimpan semua pesan folder dalam satu file dengan ekstensi “.mbox”. Untuk kenyamanan pengguna dan pengelolaan yang mudah, file terpisah dibuat untuk setiap folder di dalam kotak surat. Ini memungkinkan pengguna untuk mengimpor dan mengekspor file mbox dengan mulus, membuatnya mudah untuk memigrasikan data email antara Thunderbird dan aplikasi lain yang kompatibel dengan mbox.

  • Apple Mail - klien email default di perangkat macOS dan iOS, menawarkan dukungan bawaan untuk format mbox. Ini memungkinkan pengguna untuk dengan mudah mengakses, mengimpor, atau mentransfer file mbox di dalam Apple Mail dengan menyimpan setiap folder kotak surat sebagai file terpisah. File Apple Mail biasanya disimpan dengan ekstensi “.mbox” atau “.mbox.plist”.

  • Evolution - email kaya fitur dan aplikasi manajemen informasi pribadi untuk Linux, juga mendukung format mbox. Hal ini memungkinkan pengguna untuk mengimpor file mbox, memungkinkan kelancaran integrasi data email ke platform komprehensif Evolution.

Ini hanyalah beberapa contoh klien email yang menggunakan format mbox. Memahami format dan penggunaannya di klien email yang berbeda sangat penting saat bekerja dengan file semacam itu secara terprogram, karena membantu memastikan kompatibilitas dan penguraian data email yang akurat.

Ada variasi format yang berbeda, masing-masing dengan detail penerapannya sendiri. Beberapa format mbox yang umum ditemui antara lain mboxrd, mboxo, mboxcl, mboxcl2. Variasi ini terutama berbeda dalam cara mereka menangani aspek-aspek tertentu seperti pembatas pesan dan metadata. Penting untuk menyadari perbedaan ini saat bekerja dengan file mbox, karena dapat memengaruhi kompatibilitas dan penguraian data email.

Python API untuk Membaca File Mbox

Bekerja dengan file mbox di Python mudah dilakukan dengan pustaka Aspose.Email for Python kami. API yang tangguh dan kaya fitur ini menawarkan serangkaian fitur ekstensif untuk pemrosesan email, seperti kemampuan membaca file mbox, mengekstrak pesan, dan memanipulasi data email.

Penting untuk disebutkan bahwa Aspose.Email for Python juga menawarkan dukungan menyeluruh untuk berbagai format mbox, termasuk yang disebutkan sebelumnya. Ini berarti bahwa Anda dapat bekerja dengan lancar dengan file-file ini dari klien email yang berbeda, terlepas dari detail implementasi spesifik dari format mbox. Untuk meningkatkan kekuatan API, Anda dapat mengunduh DLL-nya atau menginstalnya dari PyPI menggunakan perintah berikut:

> pip install Aspose.Email-for-Python-via-NET

Buka File Mbox

Untuk mulai bekerja dengan file dalam format mbox, kita harus membukanya terlebih dahulu. Pustaka Aspose.Email akan membantu kami dalam hal itu.

Dalam kode kami, kami akan mengikuti langkah-langkah yang dijelaskan di bawah ini:

  • Kode dimulai dengan mengimpor modul yang diperlukan dari pustaka Aspose.Email: kelas MboxStorageReader dan MboxLoadOptions.

  • Kemudian, kami membuat instance MboxLoadOptions untuk menentukan opsi yang diinginkan untuk memuat file.

  • Kemudian, kami menyetel leaveopen ke False, yang menunjukkan bahwa file harus ditutup setelah dibaca, dan menetapkan UTF8 sebagai penyandian teks pilihan.

  • Terakhir, kita membuat instance dari kelas MboxStorageReader dengan memanggil metode statis createreader, meneruskan nama file sumber dan instance MboxLoadOptions.

Cuplikan kode berikut menunjukkan cara membuka file mbox:

from aspose.email.storage.mbox import MboxStorageReader, MboxLoadOptions

mbox_load_options = MboxLoadOptions()
mbox_load_options.leave_open = False
mbox_load_options.preferred_text_encoding = 'utf-8'

mbox_reader = MboxStorageReader.create_reader(file_name, mbox_load_options)

Daftar Pesan dari File Mbox

Karena file telah dibuka, kita dapat menjelajahi pesan yang tersimpan di dalamnya. Cuplikan kode di bawah mewakili dua pendekatan untuk mencantumkan pesan dari file mbox.

Pendekatan 1: Metode EnumerateMessageInfo

Pendekatan pertama untuk mencantumkan pesan dari file mbox menggunakan metode enumeratemessageinfo dari kelas MboxStorageReader. Itu beralih melalui pesan dan melihat informasi pesan dasar seperti subjek, bidang dari, ke, dan tanggal. Itu juga mengembalikan pengidentifikasi pesan (entri ID) yang digunakan nanti untuk membaca isi pesan lengkap. Pendekatan ini memiliki ciri-ciri sebagai berikut:

  • Kinerja: Ini lebih cepat dibandingkan dengan pendekatan lain karena fokus pada membaca dan melihat informasi pesan dasar menghindari parsing dan memuat isi pesan selama iterasi.

  • Efisiensi: Dengan hanya menargetkan informasi dasar, ini meminimalkan konsumsi memori dan waktu pemrosesan. Ini sangat dihargai ketika seseorang harus berurusan dengan file besar yang berisi banyak pesan.

Untuk membaca, mencantumkan, dan melihat pesan dalam file mbox, kami akan mengikuti langkah-langkah di bawah ini:

  • Impor modul yang diperlukan dari pustaka Aspose.Email: kelas MboxStorageReader dan MboxLoadOptions.

  • Buat instance kelas MboxLoadOptions. Objek ini akan menampung berbagai opsi untuk memuat file.

  • Konfigurasikan properti objek:

    • Setel leaveopen ke False jika Anda ingin menutup file setelah membacanya.
    • Setel pengkodean teks pilihan ke ‘utf-8’ untuk menentukan pengodean teks yang diinginkan untuk konten pesan.
  • Buka file dengan metode MboxStorageReader.createreader() dari kelas MboxStorageReader.

  • Ulangi setiap pesan dalam file menggunakan metode enumeratemessageinfo() dari objek mboxreader yang mengekstrak detail spesifik dari setiap pesan. Dalam contoh kita, mereka adalah subjek, alamat, sampai dan tanggal.

Cuplikan kode berikut menunjukkan proses iterasi melalui pesan menggunakan metode enumeratemessageinfo dan pengambilan informasinya.

from aspose.email.storage.mbox import MboxStorageReader, MboxLoadOptions

mbox_load_options = MboxLoadOptions()
mbox_load_options.leave_open = False
mbox_load_options.preferred_text_encoding = 'utf-8'

with MboxStorageReader.create_reader(file_name, mbox_load_options) as mbox_reader:
   for message_info in mbox_reader.enumerate_message_info():
        print(message_info.subject)
        print(message_info.from_address)
        print(message_info.to)
        print(message_info.date)

Dengan cara ini, kita dapat mengakses properti seperti Subject, From, To, dan Date dan menampilkan detail yang relevan.

Pendekatan 2: Metode EnumerateMessages

Berbeda dengan pendekatan pertama, pendekatan kedua dimaksudkan untuk langsung melakukan iterasi melalui instance MailMessage yang terdapat dalam file mbox menggunakan metode enumeratemessages. Metode ini membaca dan memuat seluruh konten pesan selama setiap iterasi, memungkinkan akses langsung ke informasi email lengkap. Berikut adalah beberapa aspek kunci dari pendekatan ini:

  • Kelengkapan: Memungkinkan mengakses dan memproses seluruh konten pesan, termasuk badan, lampiran, header, dan bagian lainnya.

  • Kenyamanan: Pendekatan ini terbukti bermanfaat saat Anda ingin melakukan operasi pada pesan lengkap, seperti menyimpan setiap pesan ke file terpisah. Itu membuat proses lebih sederhana dengan memuat seluruh konten pesan selama setiap iterasi, memungkinkan Anda untuk melakukan operasi yang diinginkan tanpa perlu pencarian berikutnya.

Cuplikan kode berikut menunjukkan proses iterasi melalui pesan menggunakan metode enumeratemessages dan pengambilan seluruh konten pesan.

from aspose.email.storage.mbox import MboxStorageReader, MboxLoadOptions

mbox_load_options = MboxLoadOptions()
mbox_load_options.leave_open = False
mbox_load_options.preferred_text_encoding = 'utf-8'

with MboxStorageReader.create_reader(file_name, mbox_load_options) as mbox_reader:
   for eml in mbox_reader.enumerate_messages():
        eml.save(f"{eml.subject}.eml")

Perlu diperhatikan bahwa memuat seluruh konten pesan untuk setiap iterasi berpotensi memengaruhi kinerja, terutama saat menangani file yang cukup besar atau pesan dalam jumlah besar. Oleh karena itu, penting untuk mengevaluasi kebutuhan khusus Anda dan mempertimbangkan faktor-faktor seperti ukuran file, jumlah pesan, dan operasi yang ingin Anda lakukan saat menentukan pendekatan yang paling tepat untuk situasi Anda.

Baca Pesan di File Mbox

Manipulasi lain yang mungkin ingin Anda lakukan dengan file mbox adalah membaca pesan yang ada di dalamnya. Anda dapat melakukannya menggunakan pengidentifikasi string mereka yang berasal dari pendekatan pertama pencacahan MessageInfo.

Saat menggunakan metode enumeratemessageinfo untuk mencantumkan pesan, setiap pesan dikaitkan dengan pengidentifikasi unik dalam satu file mbox. Pengidentifikasi ini, biasanya direpresentasikan sebagai string, dapat diperoleh dari properti entryid objek MboxMessageInfo.

Setelah kami memperoleh pengidentifikasi pesan, kami dapat menggunakannya untuk melihat konten pesan lengkap melalui langkah-langkah berikut:

  • Kami membuat instance EmlLoadOptions. Objek ini akan menampung berbagai opsi untuk memuat file EML.
  • Konfigurasikan properti:
    • Setel format pesan yang disematkan ke True jika Anda ingin mempertahankan format pesan yang disematkan di dalam file EML.
    • Setel protecttnefattachments ke True jika Anda ingin mempertahankan lampiran TNEF di dalam file EML.
  • Buat instance MboxLoadOptions. Objek ini akan menyimpan berbagai opsi untuk memuat file mbox.
  • Konfigurasikan properti mboxloadoptions:
    • Setel leaveopen ke False jika Anda ingin menutup file setelah membacanya.
    • Setel pengkodean teks pilihan ke ‘utf-8’ untuk menentukan pengodean teks yang diinginkan untuk konten pesan.
  • Buka file dengan metode MboxStorageReader.createreader().
  • Di dalam foreach loop, kita mengakses properti EntryId dari setiap objek MboxMessageInfo, yang mewakili pengidentifikasi unik dari pesan terkait.
  • Kami kemudian menggunakan pengidentifikasi ini bersama dengan metode ExtractMessage dari kelas MboxStorageReader untuk mengambil pesan lengkap sebagai objek MailMessage.
  • Terakhir, kita dapat melakukan operasi apa pun yang diinginkan pada pesan, seperti menyimpannya ke file .eml terpisah.

Cuplikan kode di bawah ini menunjukkan cara membaca setiap pesan menggunakan pengidentifikasi stringnya:

from aspose.email.storage.mbox import MboxStorageReader, MboxLoadOptions
from aspose.email import EmlLoadOptions

eml_load_options = EmlLoadOptions()
eml_load_options.preserve_embedded_message_format = True
eml_load_options.preserve_tnef_attachments = True

mbox_load_options = MboxLoadOptions()
mbox_load_options.leave_open = False
mbox_load_options.preferred_text_encoding = 'utf-8'

with MboxStorageReader.create_reader(file_name, mbox_load_options) as mbox_reader:
   for message_info in mbox_reader.enumerate_message_info():
        eml = mbox_reader.extract_message(message_info.entry_id, eml_load_options)
        eml.save(f"{eml.subject}.eml")

Keuntungan signifikan dari pendekatan ini adalah memungkinkan Anda untuk membaca dan memproses pesan tertentu secara selektif dengan mengabaikan orang lain. Fleksibilitas ini terbukti sangat bermanfaat ketika berhadapan dengan file besar yang berisi banyak pesan. Dengan hanya memproses pesan yang diinginkan secara selektif, perhitungan yang tidak perlu diminimalkan, menghasilkan peningkatan efisiensi secara keseluruhan.

Sangat penting untuk memahami bahwa pengidentifikasi pesan itu unik dalam satu file. Oleh karena itu, saat bekerja dengan pesan di beberapa file mbox, pemetaan antara pengidentifikasi ini dan file yang terkait menjadi penting.

Fitur Utilitas

Pustaka Aspose.Email menawarkan beberapa fitur utilitas untuk menyempurnakan pekerjaan Anda dengan file mbox. Mari pertimbangkan beberapa di antaranya:

Dapatkan jumlah total item yang disimpan di mbox

Ada cara langsung untuk menentukan jumlah item (pesan) yang disimpan dalam file mbox. Gunakan metode gettotalitemscount() untuk mengambil jumlah total item (pesan) yang ada dalam file.

Kode berikut mendapatkan jumlah total item (pesan) yang ada dalam file.

from aspose.email.storage.mbox import MboxStorageReader, MboxLoadOptions

mbox_load_options = MboxLoadOptions()
mbox_load_options.leave_open = False
mbox_load_options.preferred_text_encoding = 'utf-8'

with MboxStorageReader.create_reader(file_name, mbox_load_options) as mbox_reader:
    items_count = mbox_reader.get_total_items_count()

Dapatkan ukuran data dibaca dalam satu iterasi

Untuk mendapatkan ukuran data yang dibaca selama satu iterasi, Anda dapat mengakses properti currentdatasize dari objek mboxreader untuk mengambil ukuran data (pesan) yang sedang dibaca dalam iterasi saat ini.

Kode berikut diulang melalui setiap pesan dalam file. Selama setiap iterasi, ukuran pesan yang sedang dibaca diperoleh.

from aspose.email.storage.mbox import MboxStorageReader, MboxLoadOptions

mbox_load_options = MboxLoadOptions()
mbox_load_options.leave_open = False
mbox_load_options.preferred_text_encoding = 'utf-8'

with MboxStorageReader.create_reader(file_name, mbox_load_options) as mbox_reader:
   for message_info in mbox_reader.enumerate_message_info():
        message_size = mbox_reader.current_data_size

Kesimpulan

Pada artikel ini, kami menjelajahi mbox - format standar dan diterima secara luas untuk menyimpan pesan email. Kesederhanaan dan kompatibilitasnya di berbagai klien dan sistem email menjadikannya pilihan populer untuk pengarsipan dan transfer data email. Format termasuk variasinya didukung oleh pustaka Aspose.Email for Python kami yang kuat yang memungkinkan pembacaan, ekstraksi, dan manipulasi data email dengan mudah. Cuplikan kode sederhana dan langkah-langkah kode kami menyajikan petunjuk lengkap dan mendetail tentang cara membuka, mencantumkan, dan melihat pesan dalam file mbox.

Anda dapat menjelajahi fitur Aspose.Email lainnya menggunakan dokumentasi. Selain itu, Anda dapat memposting pertanyaan Anda ke forum kami.

Lihat juga