Saat melampirkan data ke email saya, saya perhatikan bahwa Thunderbird menghitung ukuran total email yang dihasilkan jauh lebih besar daripada file yang saya lampirkan.
Berikut adalah contoh terbaru: dua gambar, satu di 13MB dan satu di 3.6MB totalnya harus sekitar 17MB. Ada empat baris teks. Thunderbird kemudian bertanya apakah saya benar-benar ingin mengirim email dengan ukuran total 22MB.
Dari mana perbedaan itu berasal? Teks 5MB terdengar agak banyak.
email
thunderbird
base64
arc_lupus
sumber
sumber
Jawaban:
Data Anda adalah 17 MiB. Ada 1024 KiB dalam MiB. Ada 1024 B dalam KiB. Ada 8 bit dalam satu byte. Jadi itu 142.606.336 bit.
Encoding basis 64 mengkodekan setiap enam bit sebagai byte terpisah. Jadi kita membutuhkan sekitar 23.767.722 byte. Dibagi 1024 dua kali menghasilkan kita 22,67 MiB. Jadi dari situlah 22 MiB berasal.
Email adalah teknologi yang cukup tua dan tidak menganggap pipa bersih 8-bit.
sumber
Mengapa emailnya lebih besar?
Karena data dikodekan di
base64
mana mengkodekan kelompok hingga tiga byte sebagai kelompok empat karakter ASCII yang dapat dicetak. Biasanya, kelompok karakter yang dapat dicetak ini kemudian dibagi menjadi beberapa baris.Hasilnya adalah bahwa data yang dikodekan lebih dari 1⅓ kali ukuran data asli.
Mengapa base64 digunakan?
Email memiliki sejarah panjang dan awalnya dirancang untuk membawa teks. Hanya nilai byte yang mewakili karakter ASCII yang dapat dicetak yang dapat dipercaya melewati beragam sistem email di planet ini.
Jadi MIME membagi dua skema untuk pengkodean data lain sebagai teks ASCII - "dikutip-cetak" yang dirancang untuk sebagian besar teks ASCII dengan beberapa bit lainnya, dan "BASE64" untuk data biner sewenang-wenang.
Ada ekstensi ke protokol SMTP untuk mencoba dan menghapus pembatasan ini. Pertama, 8BITMIME pada tahun 1994, yang memungkinkan nilai oktet lebih tinggi tetapi sayangnya tidak menghilangkan batas terkait dengan panjang garis dan ujung garis, sehingga tidak cocok untuk data biner sewenang-wenang; dan kemudian BINARYMIME pada tahun 1995, yang memungkinkan transfer pesan yang berisi data biner sewenang-wenang.
Namun, standar-standar ini belum melihat adopsi secara luas. Satu masalah adalah, apa yang terjadi jika satu lompatan dalam rantai surat mendukung mereka tetapi lompatan berikutnya tidak? Server email kemudian tidak dapat mengirim email apa adanya, ia harus menolaknya sebagai tidak terkirim dan memantulkannya (yang kemungkinan tidak dapat diterima oleh pengguna), atau mengonversinya (yang memerlukan kode tambahan signifikan di server email) . Konversi menjadi sangat menyakitkan oleh aturan MIME tentang tidak menggunakan penyandian transfer konten pada tipe multi-bagian.
sumber