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 :
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