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