Selasa, 29 Mei 2012

SMTP dan POP 3


Simple Mail Transport Protocol (SMTP)
SMTP merupakan protokol dasar yang bertugas untuk menukarkan email (mail exchange)
antar host yang berbasis TCP/IP. Standar dari protokol ini ada 3 yaitu :
-     Standar yang digunakan untuk pertukaran email antar komputer (STD 10/RFC
821), disebut standar SMTP
-     Standar yang digunakan untuk format pesan (STD 11) dengan dijabarkan pada RFC 822 yang berisi tentang sintak mail dan RFC 1049 yang berisi tentang penggunaan file yang bukan berupa ASCII text (email menggunakan 7bit ASCII) supaya dapat digunakan pada badan email. Standar ini disebut MAIL
-     Standar  yang  digunakan  untuk  menjalurkan  email  berdasarkan  domain  name system (DNS), dijabarkan pada RFC 974 dengan nama DNS-MX

Standar diatas digunakan untuk email yang menggunakan format bahasa Inggris, sedangkan standar penggunaan email yang mendukung penggunaan bahasa lain antara lain :
-     Multipurpose Internet Mail Exchange (MIME) dijabarkan pada RFC 2045 hingga
2049.
-     Pelayanan tambahan dari SMTP berupa : pemberitahuan service extension pada
SMTP client, penggunaan 8bit format data, batas ukuran email.

 Cara kerja SMTP
SMTP    bekerja    berdasarkan    pengiriman    end-to-end,   dimana    SMTP    client    akan menghubungi SMTP server untuk segera mengirimkan email. SMTP server melayani pengguna melalui port 25.

Dimana setiap pesan harus memiliki :
-     Header atau amplop, yang dijabarkan pada RFC 822.
-     Kontent, yang berisi tentang isi dari surat yang akan dikirimkan.

Format mail header
Pengguna tidak perlu kebingungan tentang mail header, karena semuanya sudah diatur oleh SMTP.

Format dari mail header adalah
Bagian-nama : Bagian-isi
Contoh bagian header yang sering digunakan antara lain
Tabel 12.1 SMTP Header yang sering digunakan
Kata kunci
Nilai
to
Tujuan dari email
cc
Tujuan kedua dari email (carbon-copy)
from
Pengirim email
reply-to
Alamat pengembalian email
return-path
Alamat host untuk pengembalian email
Subject
Subjek tentang email yang diisikan oleh pengguna


Mail Exchange
Model SMTP dapat dilihat pada Gambar  12.2. Dari hasil pengguna meminta mail. SMTP pengirim melakukan koneksi 2 arah dengan SMTP penerima. SMTP dapat berupa tujuan akhir atau penerus (mail gateway). SMTP pengirm akan membangkitkan perintah untuk melakukan reply to pada SMTP penerima.
Pertukaran email yang terjadi adalah sebagai berikut :
1.   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
2.   HELO (kependekan dari hello) dikirim oleh server dengan menunjukkan nama domain.
3.   Pengirim  akan  memulai  memberikan  perintah  kepada  SMTP  dimana  apabila
SMTP mendukung perintah tersebut akan membalas dengan pesan 250 OK
4.   Memberikan informasi kepada SMTP tentang tujuan dari email dengan perintah
RCPT TO dilanjutkan dengan alamat email yang dituju.
5.   Setelah  tujuan  diset,  dilanjutkan  dengan  perintah  DATA  yang  menunjukkan bahwa           baris              berikutnya               adalah    isi    dari    email    dengan   diakhiri    dengan
<CRLF>.<CRLF>
6. Client mengisikan data sesuai dengan pesan yang akan dikirimkan hingga mengisikan <CRLF>.<CRLF>
7.   Pengirimkan akan menghentikan kegiatan dengan memberi perintah QUIT.


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 mengiri 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  negati (- 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.