[II3062] Anatomi sebuah email

Alkisah, hiduplah seorang mahasiswa yang hidupnya dipenuhi oleh email. Tugas kuliah diumpulkan via email. Buat janji dengan dosen pembimbing TA dilakukan via email. Informasi himpunan mahasiswa dikirim via email. Komunikasi antar peserta mata kuliah dengan dosennya juga dilakukan via email. Apa sih sebenarnya isi sebuah email? Bagaimana sebuah email client dapat menampilkan isi email dengan benar?

Mahasiswa itu pun mengirim email ke dirinya sendiri dengan disertai dua buah attachment: (1) berkas teks biasa berisi catatan untuk keperluan kuliah, dan (2) sebuah arsip ZIP berisi library yang hendak digunakan untuk mengerjakan tugas akhirnya. Email diberinya subjek “tugas” dengan isi berupa kalimat “Ini isi e-mail.” dan signature khas mahasiswa tersebut.

Setelah menerima email yang dikirimkannya sendiri itu, ia membedah isi email tersebut. Dengan gmail, isi email original dapat dilihat melalui pilihan “Show original” (lihat gambar).

Fitur "Show Original"

Gmail akan membuka sebuah window baru berisi email tersebut dalam bentuk aslinya, yaitu plainteks. Format email bersubjek “tugas” tersebut adalah sebagai berikut:

1. Header

Bagian ini terdiri atas beberapa baris teks yang berisi detail dari email yang dikirimkan, seperti versi MIME yang digunakan, alamat pengirim dan penerima, subjek, atau tanggal pengiriman email. Contohnya adalah sebagai berikut (isi sudah sedikit dimodifikasi untuk alasan keamanan):

MIME-Version: 1.0
Sender: mahasiswatersebut@gmail.com
Received: by 10.221.160.138 with HTTP; Thu, 4 Mar 2010 22:28:42 -0800 (PST)
Date: Fri, 5 Mar 2010 13:28:42 +0700
Delivered-To: mahasiswatersebut@gmail.com
X-Google-Sender-Auth: 5311aac4a899a0b2
Message-ID: <1026e5691003042228a20eac041yad268848e27193ab@mail.gmail.com>
Subject: tugas
From: Mahasiswa Tersebut <mahasiswatersebut@gmail.com>
To: Mahasiswa Tersebut <mahasiswatersebut@gmail.com>

2. Body

Bagian selanjutnya adalah isi dari email itu sendiri (perlu dicatat bahwa isi email ini terdiri atas tiga bagian: teks body email dan dua buah attachment). Bagian ini dimulai dengan sebuah baris:

Content-Type: multipart/mixed; boundary=00221532c434a0200b048107d357

yang menunjukkan dua hal: (1) email terdiri atas banyak bagian (multipart/mixed), dan (2) penanda untuk bagian isi email ini adalah 00221532c434a0200b048107d357. Ini menunjukkan bahwa bagian isi dari email tersebut akan diawali oleh baris --00221532c434a0200b048107d357 dan diakhiri oleh baris --00221532c434a0200b048107d357--. Karena isi email terdiri atas 3 bagian, ada tiga baris --00221532c434a0200b048107d357 yang dapat ditemukan: (1) untuk teks body email, (2) untuk attachment pertama yang berupa plainteks, dan (3) untuk attachment kedua yang berupa arsip ZIP.

Bagian pertama adalah sebagai berikut:

--00221532c434a0200b048107d357
Content-Type: multipart/alternative; boundary=00221532c434a02004048107d355

--00221532c434a02004048107d355
Content-Type: text/plain; charset=ISO-8859-1

Ini isi e-mail.

--
Satrio Adi Rukmono
13506070
Program Studi Teknik Informatika
Sekolah Teknik Elektro dan Informatika
Institut Teknologi Bandung
rsatrioadi.wordpress.com
rsatrioadi.deviantart.com
http://www.google.com/profiles/r.satrioadi

"This message was transmitted on 100% recycled electrons."

--00221532c434a02004048107d355
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Ini isi e-mail.<br clear=3D"all"><br>-- <br>Satrio Adi Rukmono<br>13506070<=
br>Program Studi Teknik Informatika<br>Sekolah Teknik Elektro dan Informati=
ka<br>Institut Teknologi Bandung<br><a href=3D"http://rsatrioadi.wordpress.=
com">rsatrioadi.wordpress.com</a><br>
<a href=3D"http://rsatrioadi.deviantart.com">rsatrioadi.deviantart.com</a><=
br><a href=3D"http://www.google.com/profiles/r.satrioadi">http://www.google=
.com/profiles/r.satrioadi</a><br><br>&quot;This message was transmitted on =
100% recycled electrons.&quot;<br>

--00221532c434a02004048107d355--

Terliihat bahwa bagian ini dipisah lagi ke dalam content baru yang ditandai oleh 00221532c434a0200b048107d357. Hal ini diperlukan untuk memudahkan email client dalam menampilkan isi email: client yang hanya mendukung plainteks dapat menampilkan bagian pertama saja, yang bertipe text/plain, sedangkan client yang mendukung HTML dapat menampilkan bagian kedua yang dilengkapi tag-tag HTML, yaitu yang bertipe text/html.

Selanjutnya bagian kedua merupakan attachment berupa berkas teks biasa:

--00221532c434a0200b048107d357
Content-Type: text/plain; charset=US-ASCII; name="avrdude.txt"
Content-Disposition: attachment; filename="avrdude.txt"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_g6eltdut1

IyBhdnJkdWRlIC1wIG04IC1jIHVzYmFzcA0KLy8ga29tdW5pa2FzaSBhd2FsIGRnbiBhdnIsIC1w
ICh0aXBlIG1pY3JvY29udHJvbGxlcikgLWMgKHRpcGUgcHJvZ3JhbW1lcikNCg0KIyBhdnJkdWRl
IC1wIG04IC1jIHVzYmFzcCAtVSBmbGFzaDpyOmEuaGV4OmkNCi8vLVUgZmxhc2g6cjphLmhleDpp
IC0+IGJhY2EgZGFyaSBmbGFzaCBtZW1vcnkgKHIpLCBkaXNpbXBhbiBkYWxhbSBhLmhleCBkZW5n
YW4gZm9ybWF0IGkgKGludGVsJ3MgYmluYXJ5KQ0KDQojIGF2cmR1ZGUgLXAgbTggLWMgdXNiYXNw
IC1VIGhmdXNlOnc6MHgyZjptDQovLyBtIC0+IGltbWVkaWF0ZSB3cml0ZQ==

Di awal bagian kedua ini dapat dilihat bahwa berkas bertipe text/plain, dengan nama berkas avrdude.txt. Attachment dikodekan dalam base64. Mengenai base64 akan dijelaskan lebih lanjut setelah bagian ketiga yang berupa arsip ZIP (tipe application/zip):

--00221532c434a0200b048107d357
Content-Type: application/zip; name="sim300.zip"
Content-Disposition: attachment; filename="sim300.zip"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_g6elt12r0

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

Pengkodean base64 diperlukan untuk attachment, khususnya yang berbentuk binary agar dapat dimuat dalam berkas email yang berupa plainteks. Prinsip dasar dari base64 adalah menyatukan setiap tiga oktet (8 bit) dalam berkas, kemudian dipecah lagi menjadi empat bagian yang masing-masing terdiri atas 6 bit. Bagian-bagian ini kemudian dipetakan ke dalam plainteks menggunakan tabel yang memetakan {0..63} ke karakter {‘A’..’Z’, ‘a’..’z’, ‘0’..’9′, ‘+’, ‘/’}. Pengkodean base64 dapat dilihat lebih rinci di sini.

Akhirnya, bagian isi email diakhiri dengan baris berikut, yang menandai bagian akhir dari body:

--00221532c434a0200b048107d357--

Demikianlah hasil bedah email yang dilakukan oleh seorang mahasiswa.

Iklan

3 thoughts on “[II3062] Anatomi sebuah email

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s