Format mbox

Bagaimana Email Klien Menyimpan Mail di Hard Disk Anda

Format paling umum untuk penyimpanan pesan email adalah format mbox. MBOX adalah singkatan dari MailBOX. Mbox adalah file tunggal yang berisi nol atau lebih banyak pesan email.

Format mbox

Jika kami menggunakan format mbox untuk menyimpan email, kami menempatkan semuanya dalam satu file. Ini menciptakan lebih banyak atau lebih sedikit file teks panjang (email Internet selalu hanya ada sebagai teks ASCII 7-bit, yang lainnya - lampiran, misalnya - dikodekan ) yang berisi satu pesan email setelah yang lain. Bagaimana kita tahu di mana satu ujung dan yang lain dimulai?

Untungnya, setiap email memiliki setidaknya satu baris di awal. Setiap pesan dimulai dengan "Dari" (Dari diikuti oleh karakter spasi putih, juga disebut garis "Dari_"). Jika urutan ini ("Dari") di awal baris didahului oleh baris kosong atau di bagian atas file, kami telah menemukan awal pesan.

Jadi apa yang kita cari ketika mem-parsing file mbox adalah, pada dasarnya, sebuah baris kosong diikuti dengan "Dari".

Sebagai ekspresi reguler, kita dapat menulis ini sebagai "\ n \ nDari. * \ N". Hanya pesan pertama yang berbeda. Ini dimulai hanya dengan "Dari" di awal baris ("^ Dari. * \ N").

& # 34; Dari & # 34; di dalam Tubuh

Bagaimana jika urutan persis di atas muncul di badan pesan email? Bagaimana jika yang berikut adalah bagian dari email?

... Saya mengirimi Anda laporan terbaru.

Dari laporan ini, Anda tidak perlu ...

Di sini, kita memiliki garis kosong yang diikuti oleh "Dari" di awal baris. Jika ini muncul di file mbox, kita pasti memiliki awal dari pesan baru. Setidaknya itulah yang parser pikirkan - dan mengapa kedua klien email dan kami akan sangat bingung oleh pesan email yang tidak berisi pengirim maupun penerima, tetapi dimulai dengan "Dari laporan ini".

Untuk menghindari kondisi bencana seperti itu, kita perlu memastikan "Dari" tidak pernah muncul di awal baris mengikuti baris kosong di badan email.

Setiap kali kita menambahkan pesan baru ke file mbox , kita mencari urutan seperti itu di dalam tubuh dan mengganti "Dari" dengan "> Dari". Ini membuat kesalahan interpretasi menjadi tidak mungkin. Contoh di atas sekarang terlihat seperti ini dan tidak lagi memicu parser:

... Saya mengirimi Anda laporan terbaru.

> Dari laporan ini, Anda tidak perlu ...

Inilah sebabnya mengapa Anda kadang-kadang dapat menemukan "> Dari" di email di mana Anda mengharapkan hanya "Dari".