Format mbox

Bagaimana Pelanggan E-mel Simpan Mail pada Cakera Keras Anda

Format yang paling umum untuk penyimpanan mesej mel adalah format mbox. MBOX bermaksud Mailbox. Kotak mbox ialah satu fail tunggal yang mengandungi sifar atau lebih banyak mesej e-mel.

Format mbox

Jika kami menggunakan format mbox untuk menyimpan e-mel, kami masukkan semua dalam satu fail. Ini mencipta fail teks yang panjang atau lebih panjang (e-mel Internet selalu wujud sebagai teks ASCII 7-bit, segala-galanya - lampiran, misalnya - dikodkan ) yang mengandungi satu mesej e-mel selepas yang lain. Bagaimanakah kita tahu di mana satu berakhir dan yang lain bermula?

Nasib baik, setiap e-mel mempunyai sekurang-kurangnya satu Daripada talian pada awalnya. Setiap mesej bermula dengan "Dari" (Daripada diikuti dengan aksara ruang putih, juga dipanggil "Dari_" baris). Jika urutan ini ("Dari") pada permulaan garis didahului oleh baris kosong atau berada di bahagian atas fail, kami telah menemui permulaan mesej.

Oleh itu, apa yang kita cari ketika mem-parsing fail mbox, pada dasarnya, baris kosong diikuti dengan "Dari".

Sebagai ungkapan biasa, kita boleh menulis ini sebagai "\ n \ nFrom. * \ N". Hanya mesej pertama yang berbeza. Ia bermula hanya dengan "Dari" pada awal baris ("^ Dari. * \ N").

& # 34; Dari & # 34; dalam Badan

Bagaimana sekiranya urutan di atas muncul dalam badan mesej e-mel? Bagaimana jika berikut adalah sebahagian daripada e-mel?

... Saya menghantar laporan terkini.

Dari laporan ini, anda tidak perlu ...

Di sini, kita mempunyai baris kosong diikuti oleh "Dari" pada permulaan garisan. Jika ini muncul dalam fail mbox, kami secara tidak langsung mempunyai permulaan mesej baru. Sekurang-kurangnya itulah yang difikirkan oleh parser - dan kenapa kedua-dua pelanggan e-mel dan kami akan agak keliru dengan mesej e-mel yang tidak mengandungi penghantar atau penerima, tetapi bermula dengan "Dari laporan ini".

Untuk mengelakkan keadaan yang buruk, kita perlu memastikan "Dari" tidak muncul pada permulaan garis berikutan garisan kosong dalam badan e-mel.

Apabila kami menambah mesej baru ke fail mbox , kami mencari urutan sedemikian di dalam badan dan hanya menggantikan "Dari" dengan "> Dari". Ini membuat salah tafsir tidak mungkin. Contoh di atas sekarang kelihatan seperti ini dan tidak lagi mencetuskan parser itu:

... Saya menghantar laporan terkini.

> Daripada laporan ini, anda tidak perlu ...

Inilah sebabnya mengapa anda kadang-kadang dapat mencari "> Dari" dalam e-mel yang anda harapkan hanya "Dari".