Selasa, 29 Mei 2012


Cara Kerja SMTP

SMTP merupakan protokol dasar yang bertugas untuk menukarkan email (mail exchange) antar host yang berbasis TCP/IP.

SMTP bekerja berdasarkan pengiriman end-to-end, dimana SMTP client (pengirim) akan menghubungi SMTP server (penerima) untuk segera mengirimkan email. SMTP server melayani pengguna melalui port 25. Dimana setiap pesan yang dikirimkan melaui SMTP harus memiliki :
  • Header atau amplop, yang dijabarkan pada RFC 822.
  • Konten atau isi, yang berisi tentang isi dari surat yang akan dikirimkan

Format mail header:
Kita tidak perlu kebingungan tentang mail header, karena semuanya sudah diatur oleh SMTP, bagian dari mail header yang sering digunakan adalah :
Mail Exchange:
Pada saat pengiriman diminta oleh user SMTP Pengirim melakukan koneksi 2 arah dengan SMTP penerima. SMTP dapat berupa tujuan akhir atau penerus (mail gateway). SMTP pengirim akan membangkitkan perintah untuk melakukan reply to pada SMTP penerima.

Diagram alir pertukaran surat SMTP:



  • SMTP Pengirim melakukan koneksi TCP/IP dengan SMTP penerima dan menunggu server untuk mengirim pesan 220 yang menandakan pelayanan terhadap pesan sudah siap atau pesan 421 pelayanan tidak siap.
  • HELO (kependekan dari hello) dikirim oleh server dengan menunjukkan nama domain.
  • Pengirim akan memulai memberikan perintah kepada SMTP dimana apabila SMTP mendukung perintah tersebut akan membalas dengan pesan 250 OK.
  • Memberikan informasi kepada SMTP tentang tujuan dari email dengan perintah RCPT TO dilanjutkan dengan alamat email yang dituju.
  • Setelah tujuan diset, dilanjutkan dengan perintah DATA yang menunjukkan bahwa baris berikutnya adalah isi dari email dengan diakhiri dengan CRLF.
  • Client mengisikan data sesuai dengan pesan yang akan dikirimkan hingga mengisikan CRLF kembali untuk menandakan berakhirnya data.
  • Pengirimkan akan menghentikan kegiatan dengan memberi perintah QUIT.
Kecepatan koneksi antar kedua server SMTP (penerima dan pengirim) inilah yang menentukan kecepatan suatu email diterima.

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. 

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 lebihargument. 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 


Tidak ada komentar:

Posting Komentar