Dekoder MIME

Tempel sumber lengkap sebuah email - header dan isi - dan lihat ia terurai: setiap header, struktur MIME, encoding transfer serta charset tiap bagian, isi text/HTML yang didekode, dan lampiran apa pun. Semuanya berjalan di browser Anda; tidak ada yang diunggah.

Hasil:
Tempel email mentah di atas dan tekan “Dekode pesan”. Tips: di sebagian besar klien email gunakan “Tampilkan asli” / “Lihat sumber”, atau simpan pesan sebagai file .eml, untuk mendapatkan teks mentahnya.

Apa itu dekoder MIME, dan apa arti semua header ini?

Setiap email yang Anda terima, pada dasarnya, adalah sebuah dokumen teks biasa yang mengikuti struktur ketat yang ditentukan oleh MIME (Multipurpose Internet Mail Extensions) dan format pesan RFC 5322 yang lebih lama. Ketika Anda membuka “sumber mentah” atau sebuah file .eml yang tersimpan, struktur itu menjadi terlihat: sebuah blok header, satu baris kosong, lalu isi pesan. Dekoder ini memecah pesan apa pun yang Anda tempel menjadi bagian-bagian tersebut — header, pohon MIME, encoding transfer dan charset setiap bagian, teks/HTML yang didekode, serta setiap lampiran — sepenuhnya di dalam browser Anda. Tidak ada yang diunggah ke server mana pun; penguraian berjalan di komputer Anda sendiri.

1. Bentuk keseluruhan sebuah pesan

Sebuah pesan memiliki dua bagian yang dipisahkan oleh baris kosong pertama:

Header-Name: header value Another-Header: another value (a folded continuation line) <blank line> The body starts here…
  • Header menggambarkan pesan: siapa yang mengirimnya, kapan, subjeknya, dan — yang penting untuk MIME — bagaimana isi pesan dikodekan dan disusun.
  • Baris kosong adalah batas antara header dan isi. Baris kosong pertama itulah yang mengakhiri blok header.
  • Isi adalah segala sesuatu setelahnya. Untuk pesan modern, isinya biasanya bukan teks biasa melainkan sebuah struktur MIME dengan beberapa bagian.

2. Bagaimana header ditulis

Dua aturan sering membingungkan orang saat membaca sumber mentah:

  • Folding. Sebuah header yang panjang dapat dipecah menjadi beberapa baris; setiap baris lanjutan diawali dengan spasi atau tab. Saat dibaca, baris-baris itu digabungkan kembali menjadi satu nilai (“unfolded”).
  • Encoded-words (RFC 2047). Header secara resmi hanya mengizinkan ASCII, sehingga teks non-Inggris dan emoji dibungkus sebagai =?charset?B?…?= (Base64) atau =?charset?Q?…?= (varian quoted-printable). Sebagai contoh =?UTF-8?Q?caf=C3=A9?= didekode menjadi café. Dekoder di atas menampilkan nilai yang mudah dibaca; nilai mentahnya adalah apa yang sebenarnya melintas di jaringan.

3. Penjelasan field header

Ini adalah variabel yang akan Anda lihat di bagian atas hampir setiap pesan. Tidak semuanya selalu ada.

Pengalamatan dan identitas

HeaderApa artinya
FromPenulis yang ditampilkan kepada pembaca — sebuah nama tampilan dan alamat, mis. Anna <anna@example.com>. Inilah yang ditampilkan klien email Anda; ini bukan bukti siapa yang benar-benar mengirim email (lihat SPF/DKIM di bawah).
To, CcPenerima utama dan tembusan. Header yang murni informatif — pengiriman sesungguhnya digerakkan oleh amplop SMTP, bukan oleh header ini.
BccTembusan buta. Biasanya dihapus sebelum pengiriman, sehingga jarang terlihat pada email yang diterima.
Reply-ToKe mana balasan seharusnya dikirim jika berbeda dari From (mis. pengirim “no-reply” yang mengarahkan balasan ke dukungan).
Return-PathPengirim amplop (alamat “MAIL FROM”) ke mana pesan pantulan (bounce) dikirim. Ditambahkan oleh server penerima dan sering berbeda dari From.
SenderAgen sebenarnya yang mengirimkan pesan ketika ia bukan penulisnya (milis, “atas nama”).
Message-IDSebuah pengenal unik secara global untuk pesan ini, seperti <a1b2c3@example.com>. Digunakan untuk threading dan penghapusan duplikat.

Threading, tanggal, dan subjek

HeaderApa artinya
SubjectBaris topik. Sering berupa encoded-word ketika mengandung karakter non-ASCII.
DateKapan penulis mengirim pesan, dengan offset zona waktu, mis. Wed, 9 Jul 2026 10:15:00 +0000.
In-Reply-ToMessage-ID yang dibalas oleh pesan ini — memungkinkan klien membangun untaian percakapan.
ReferencesRantai Message-ID sebelumnya dalam untaian.

Perutean dan autentikasi

HeaderApa artinya
ReceivedSebuah baris jejak yang ditambahkan oleh setiap server email yang dilewati pesan, yang terbaru berada di paling atas. Membacanya dari bawah ke atas menunjukkan jalur pengiriman dan cap waktunya.
DKIM-SignatureSebuah tanda tangan kriptografis yang memungkinkan penerima memastikan bahwa pesan benar-benar dikirim oleh domain tersebut dan tidak diubah selama transit.
Authentication-ResultsPutusan server penerima atas pemeriksaan SPF, DKIM, dan DMARC (pass/fail). Cara cepat untuk menilai apakah sebuah “From” layak dipercaya.
Received-SPFApakah IP pengirim berwenang mengirim untuk domain amplop.
List-UnsubscribeUntuk email massal/buletin: alamat atau URL yang digunakan klien untuk berhenti berlangganan dengan satu klik.

4. Variabel MIME — bagaimana isi pesan dibangun

Segelintir header ini mengendalikan seluruh struktur isi pesan. Inilah variabel yang paling diperhatikan dekoder ini.

VariabelApa fungsinya
MIME-Version: 1.0Menyatakan bahwa pesan menggunakan MIME. Praktisnya selalu 1.0.
Content-TypeVariabel tunggal yang paling penting: tipe media sebuah bagian (text/plain, text/html, image/png, application/pdf, multipart/*…). Ia membawa parameter setelah tanda titik koma.
charsetSebuah parameter dari Content-Type teks: encoding karakter dari teks tersebut, mis. charset="UTF-8". Diperlukan untuk mengubah byte kembali menjadi huruf yang benar.
boundarySebuah parameter dari tipe multipart: sebuah string penanda unik. Setiap bagian diawali dengan --boundary dan bagian terakhir diakhiri dengan --boundary--.
Content-Transfer-EncodingBagaimana byte sebuah bagian dikemas agar bertahan sebagai teks 7-bit di jaringan (lihat tabel di bawah).
Content-Dispositioninline (tampilkan di dalam pesan) atau attachment (tawarkan sebagai file). Biasanya membawa parameter filename.
name / filenameNama file yang disarankan untuk sebuah lampiran, masing-masing di Content-Type dan Content-Disposition.
Content-IDSebuah pengenal untuk bagian inline (mis. sebuah gambar) sehingga isi HTML dapat merujuknya dengan cid:.

Tipe multipart yang umum

  • multipart/alternative — pesan yang sama dalam dua bentuk: cadangan text/plain dan versi text/html. Klien menampilkan bentuk terkaya yang bisa ia tampilkan.
  • multipart/mixed — sebuah isi ditambah lampiran yang dibundel bersama.
  • multipart/related — sebuah bagian HTML bersama gambar-gambar inline yang dirujuknya melalui Content-ID.

Tipe-tipe ini bersarang: sebuah pesan nyata sering kali berupa multipart/mixed yang berisi sebuah multipart/alternative (teks + HTML) di samping sebuah lampiran PDF. Dekoder menampilkannya sebagai pohon bernomor (1, 1.1, 1.2…).

5. Nilai Content-Transfer-Encoding

NilaiMakna
7bitASCII biasa, tidak ada yang diubah. Nilai bawaan ketika tidak ada encoding yang diberikan.
8bitByte mentah di atas 127 digunakan langsung (memerlukan jalur yang 8-bit-clean).
binaryByte sembarang, tanpa batas panjang baris — jarang pada email biasa.
quoted-printableTeks yang sebagian besar mudah dibaca, di mana byte non-ASCII menjadi =XX heksadesimal (dan = di akhir baris adalah pemutusan lunak). Cocok untuk teks yang sebagian besar berbahasa Inggris dengan sedikit aksen.
base64Byte apa pun dikode ulang menjadi alfabet 64 karakter yang aman, ~33% lebih besar. Digunakan untuk gambar, PDF, dan lampiran biner lainnya.

Dekoder membalik mana pun dari encoding ini yang digunakan, lalu menerapkan charset bagian tersebut sehingga teks kembali dapat dibaca dan lampiran kembali menjadi byte aslinya (yang dapat Anda unduh).

6. Contoh yang dikerjakan

Tekan “Muat contoh” di atas untuk memuat sebuah pesan kecil dan melihatnya didekode. Kerangkanya tampak seperti ini:

Subject: =?UTF-8?Q?Meeting_notes_=E2=80=93_caf=C3=A9?= ← encoded-word MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="OUTER" --OUTER Content-Type: multipart/alternative; boundary="INNER" --INNER Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable ← bagian teks ... --INNER Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 ← alternatif HTML ... --INNER-- --OUTER Content-Type: text/plain; name="notes.txt" Content-Disposition: attachment; filename="notes.txt" Content-Transfer-Encoding: base64 ← lampiran ... --OUTER--

Cara membacanya: tipe terluarnya adalah multipart/mixed, jadi isinya adalah “konten + lampiran”. Anak pertamanya adalah sebuah multipart/alternative yang memuat versi teks biasa dan HTML dari catatan yang sama; anak keduanya adalah lampiran notes.txt. Subject-nya adalah sebuah encoded-word yang didekode menjadi “Meeting notes – café”.

7. Privasi

Semuanya tetap berada di perangkat Anda. Alat ini mengurai pesan dengan JavaScript di browser Anda — email mentah tidak pernah dikirim ke kami atau siapa pun, dan tidak ada yang disimpan. Anda dapat memeriksa pesan pribadi atau sensitif dengan aman.

Setelah Anda mengetahui dari server mana sebuah pesan berasal, Anda dapat menggali lebih dalam: cari MX Lookup domainnya, baca bagaimana sebuah server menjawab dalam panduan Pemeriksaan SMTP dengan telnet, atau periksa apakah sebuah alamat dapat menerima email dengan Pemeriksa Email.