Mengenal POP(1)
Widjil Widodo
Dosen: Onno W. Purbo

Saat ini di kalangan masyarakat pengguna internet, POP bukanlah suatu barang baru.  Dengan menggunakan POP,  seseorang mendapat kemudahan untuk mendapatkan   mail  miliknya  dari sebuah mail server, tanpa perlu  koneksi  yang lama dengan internet yang  tentu saja memakan biaya. Dibawah ini, penulis akan sedikit menerangkan  tentang cara kerja dari POP.
Pada  tulisan  ini,  akan  banyak  ditemui  istilah  client  dan  server. Client  dan server  merupakan bagian  dari arsitektur yang banyak digunakan pada implementasi  layanan    internet.  Arsitektur  ini  biasa  disebut  sebagai  client/server architecture.  Pengertian client  pada  pembahasan tentang POP3 ini adalah pihak yang  menggunakan layanan POP3 dan server adalah pihak yang menyediakan layanannya

Apakah POP itu ?

POP  atau  Post Office Protocol, sesuai  dengan  namanya  merupakan  protokol yang  digunakan untuk pengelolaan mail. POP  yang sekarang lebih umum dikenal  dengan  POP3  (POP - Version 3),  dimaksudkan   untuk   mengizinkan  client  untuk  mengakses  secara  dinamis  mail  yang  masih  ada di  POP3 server. POP3  menawarkan  pada  user  untuk  meninggalkan  mail-nya di  POP3 server,  dan mengambil  mail-nya  tersebut  dari sejumlah  sistem  sebarang.  Untuk  mengambil mail   dengan   menggunakan   POP3   dari   suatu   client,  banyak   pilihan  yang  dapat  digunakan  seperti   Sun  Microsystem Inc.'s Mailtool, QualComm Inc.'s Eudora, Netscape Comm. Corp.'s  Netscape Mail dan  Microsoft Corp.'s Outlook  Express.
POP3 tidak dimaksudkan untuk menyediakan operasi manipulasi mail  yang ada  di server secara luas. Pada  POP3,  mail diambil  dari server dan kemudian dihapus (bisa juga tidak dihapus). Segala sesuatu tentang protokol POP3 ini dibahas dalam RFC (Request For Comment) 1725. Protokol yang lebih  tinggi dan lebih kompleks, yaitu IMAP4, dibahas dalam RFC 1730.

Mode POP3

Ada dua jenis mode pada POP3 yaitu mode offline  dan mode inline. Pada mode offline, POP3 mengambil dan kemudian menghapus mail yang tersimpan dari server. POP3 bekerja dengan baik pada mode ini, karena terutama  memang didisain untuk  berlaku sebagai  sebuah sistem mail  yang memiliki sifat "store-and-forward".  Server, pada mode offline, berlaku seperti sebuah tempat penampungan  yang menyimpan  mail sampai user memintanya. 
Pada  mode  inline, POP3  akan  mengambil mail  dari server  tanpa  menghapus mail yang sudah diambil tersebut. Mode ini lebih disukai oleh user yang  sering berpindah  tempat  (nomadic user) karena  memungkinkan mereka  untuk melihat  mail yang  sama dari tempat atau  komputer yang  berbeda.  Akan  tetapi  untuk   nomadic  user  yang   selalu  bekerja  dan  bepergian  dengan  selalu  membawa  notebook, dan tetap  menginginkan  agar  mail  miliknya  yang  ada di server  tidak dihapus, tentu  saja  menginginkan  agar  setiap kali   mengambil mail  tidak semua mail  yang akan  terambil, tapi hanya mail  yang  belum pernah  dia lihat saja  yang akan  diambil.  Keinginan user seperti ini dapat dipenuhi   dengan menggunakan  informasi  pada  client  yang memungkinkan untuk  memberi tanda mail yang sudah  pernah dilihat. Setiap client  layanan POP3  yang mendukung  mode inline akan  menyimpan  informasi ini dalam sebuah file. Pada user yang menggunakan Netscape Mail, file yang  menyimpan  informasi ini adalah  file popstate.dat, yang biasanya terdapat di  /Program Files/Netscape/Users/Mail.  File tersebut memberi  tahu   mail yang  mana saja yang  sudah diambil  sehingga tidak perlu diambil lagi. Jika file ini dihapus maka tentu saja  pada pengambilan mail berikutnya semua mail akan terambil. Contoh isi file popstate.dat untuk seorang user yang memiliki login  misalnya ‘wandi’ di  POP3 server students.itb.ac.id adalah sebagai berikut :

# Netscape POP3 State File
# This is a generated file!  Do not edit.

*students.itb.ac.id wandi
k c67ee091087ed814337b4cb31e0d488c
k 8541822a98e890b88d8299d034993f61
k 652e17a1c984e610e4e55257c07b6ff4

Pada file ini kode dibelakang huruf k merupakan unique-id. Unique-id ini secara unik mengidentifikasi  sebuah mail dalam  maildrop  sehingga  masing-masing  mail memiliki unique-id  yang berbeda. Jika misalnya  mail  kita  yang berada  di komputer  lokal  sudah terhapus sedangkan  kita  ingin membacanya  lagi, maka sebelum kita mengambil  maildrop dari server, file popstate.dat ini harus dihapus terlebih  dahulu.  Apabila  kita belum menghapus  file tersebut  maka akan  ada  pesan  :  “ no new messages on server “, yang  diberikan  oleh Netscape Mail.  Untuk pemakai Eudora,  file yang  menyimpan  informasi ini adalah  file lmos.dat, sedangkan untuk  pengguna Outlook Express biasanya menggunakan file  pop3uidl.dat. 

Operasi Dasar POP3

Pada awalnya, server memulai layanan POP3 dengan mendengarkan  permintaan  pada TCP  port  110.  Ketika sebuah client meminta layanan tersebut, maka  terjadilah   hubungan TCP  dengan  server.  Pada saat  hubungan  dimulai,  POP3 server mengirim  greeting (kata pembuka). Setelah itu client akan memberikan command  (perintah) ke server  dan POP3 server  akan memberikan response (jawaban)  sampai  hubungan  ditutup atau  digagalkan. Perlu  diingat bahwa user tidak memasukkan  perintah ini, tapi  software  dari  client-lah yang mengirim perintah ini ke server.
Perintah-perintah di POP3 terdiri dari sebuah keyword yang tidak case sensitive (tidak mempersoalkan huruf   kapital  ataupun tidak),  yang dapat diikuti oleh satu atau lebih argument. Keyword dan argument masing-masing  dipisahkan oleh karakter SPACE (spasi). Keyword terdiri dari tiga atau empat  karakter, sedangkan tiap argument  dapat  mencapai 40 karakter.  Jawaban  di POP3 terdiri dari sebuah indikator status dan sebuah keyword yang dapat diikuti oleh  informasi   tambahan. Ada  dua indikator status : positif  (“+OK”)  dan  negatif   (“-ERR”). Server harus  memberikan  jawaban  +OK  dan  -ERR  dalam  huruf kapital. Pada  perintah tertentu, server akan memberikan  jawaban yang terdiri dari  beberapa baris.
Sebuah  sesi  hubungan  POP3 dibangun melalui tiga  tahap, yaitu  tahap  authorization, transaction dan update. Sekali  hubungan TCP dimulai  dan POP3 server telah mengirimkan greeting ,  maka sesi hubungan telah memasuki  tahap authorization. Pada   tahap ini  client  mengirim   nama  dan   password  user  ke server untuk  membuktian  keaslian user tersebut agar dapat mengambil mail-nya.  Ketika  client  telah  berhasil  membuktikan  identitas dirinya, server  akan memperoleh  informasi yang  berhubungan dengan  mail  yang  dimiliki  client  tersebut, dan sesi kini memasuki tahap transaction. Pada tahap inilah terjadi proses  penerimaan  mail, penandaan mail  untuk penghapusan,  pembatalan  penandaan  untuk  penghapusan,  penampilan statistik  mail atau perincian identitas mail.  Pada saat client telah memberikan perintah quit untuk mengakhiri hubungan, maka  sesi memasuki tahap update. Pada tahap inilah   server akan  menjalankan   semua  perintah  yang diperoleh selama  tahap transaction dan  menutup sesi dan selanjutnya hubungan TCP ditutup.
Sebuah server harus menjawab perintah yang tidak dikenal, tidak diimplementasi, atau tidak sesuai dengan  sintaksis dengan  indikator status  negatif. Server juga harus memberikan indikator status negatif, jika ada client yang memberikan  perintah  tidak pada tahap yang seharusnya. Tidak ada metoda umum yang  dapat  digunakan oleh client untuk  membedakan antara server yang tidak mengimplementasikan perintah tambahan dengan server yang tidak dapat atau tidak  bersedia  memproses perintah tambahan tersebut.
Sebuah  POP3 server  mungkin memiliki  autologout  timer  untuk client yang  sedang  tidak aktif  dalam  rentang  waktu  tertentu. Timer  seperti  ini  harus paling sedikit  memiliki  rentang waktu 10 menit.  Jika sebuah server  menerima  sebarang  perintah dari  client  didalam  rentang  waktu  tersebut,  maka  hal ini  sudah  cukup  untuk me-reset  autologout  timer  tersebut.  Ketika  waktu rentang timer  sudah  habis,  tanpa ada aktivitas  dari client  maka sesi hubungan tidak memasuki tahap UPDATE. Server akan   menutup  hubungan TCP tanpa menghapus mail atau mengirim jawaban ke client.
Semua  pesan  yang disampaikan  selama sesi  hubungan POP3  harus disesuaikan dengan standar  format  dari Internet  text messages. Internet  text messages ini,  secara terperinci  dibahas dalam RFC 822. Tabel 1. dibawah  ini memperlihatkan perintah-perintah pada POP3 berikut  tahap tempat perintah tersebut digunakan.

Perintah	Tahap	
USER <user name>      	
AUTHORIZATION	
PASS <password>		
QUIT		
STAT 	

TRANSACTION	
LIST [msg]		
RETR [msg]		
DELE [msg]		
NOOP		
RSET		
 QUIT                    	UPDATE	

Tabel 1

Perintah POP3 yang terdapat pada tabel diatas adalah merupakan perintah-perintah dasar yang dilayani oleh semua POP3 server dengan implementasi  minimal. Selain perintah diatas masih ada lagi beberapa perintah  tambahan yang mengizinkan sebuah POP3 client  untuk lebih bebas dalam penanganan mail miliknya pada saat  berhubungan dengan  POP3 server. Perintah tambahan beserta tahap yang dibenarkan untuk  penggunaan perintah tersebut dapat dilihat pada  tabel 2. dibawah ini :

Perintah	Tahap	
APOP <name> <digest>      	AUTHORIZATION	
TOP [msg] n	TRANSACTION	
UIDL [msg]		

Tabel 2

POP3  mengerti  semua perintah  yang  ditunjukkan  oleh  kedua tabel diatas, tapi POP3  hanya  mengetahui  tiga  jawaban :  “+OK " ,  “-ERR "   dan  daftar jawaban yang  diakhiri  dengan  “.”  (indikator  akhir  dari  suatu  daftar  jawaban).  Perlu  diingat  bahwa  kecuali untuk perintah STAT, LIST, dan   UIDL, jawaban yang diberikan  oleh POP3  server  pada  setiap perintah adalah  hanya “+OK” dan “-ERR”. 

Referensi

•	Myers, J., “Post Office Protocol - Version 3”, RFC 1725, Carnegie Mellon, November 1994.
•	Henry, S. Lee, “How Do You Talk to a POP Server?”, Sun Expert Magazine, July 1998.
•	Postel, J., "Simple Mail Transfer Protocol", STD 10, RFC 821, USC/Information Sciences Institute, August  1982. 
•	Crocker, D., "Standard for the Format of ARPA-Internet Text Messages", STD 11, RFC 822, University of  Delaware, August 1982.