Electronic-Mail (E-Mail) merupakan aplikasi TCP/IP yang paling banyak digunakan. Bab ini membahas protokol yang mendukung aplikasi email.
1. 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.
1.1. 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.
1.1.1. 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 penggunaan mail header :
To: Sukaridhoto <dhoto@eepis-its.edu>
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 |

Gambar 12.1 Envelope, Header, Body
1.1.2. 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.

Gambar 12.2 Model SMTP
1.2. Diagram alir pertukaran surat SMTP
Pertukaran email yang terjadi adalah sebagai berikut :
- 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>.<CRLF>
- Client mengisikan data sesuai dengan pesan yang akan dikirimkan hingga mengisikan <CRLF>.<CRLF>
- Pengirimkan akan menghentikan kegiatan dengan memberi perintah QUIT.

Gambar 12.3 Aliran SMTP
Dapat dicontohkan dengan :

Gambar 12.4 Contoh penggunaan SMTP
1.3. SMTP dan Domain Name System
Apabila jaringan menggunakan DNS, maka SMTP tidak dapat hanya dengan mudah mengirimkan suatu email ke TEST.IBM.COM hanya dengan membuka koneksi TCP ke TEST.IBM.COM. Yang dilakukan pertama kali adalah melakukan query ke server name dan mendapatkan hasil ke arah mana tujuan tersebut.
SMTP akan mencari record pada DNS dengan tanda MX, dan akan mengirimkan ke email ke host yang tercatat pada host tersebut

Gambar 12.5 Cara kerja Email
2. Multipurpose Internet Mail Extensions (MIME)
MIME adalah standar internet yang menyambung format email supaya mendukung format text dengan format selain US-ASCII, non-text attachment, multi-part pada badan pesan, dan informasi pada header. Keseluruhan email yang ditulis oleh pengguna akan dikirim melalui SMTP dengan format MIME. Selain digunakan pada sistem email MIME juga digunakan pada protokol lainnya seperti HTTP pada world wide web. MIME dijabarkan pada RFC 2045, RFC 2046 dan RFC 2049. Dasar internet untuk protokol email , SMTP, hanya mendukung 7bit ASCII, karena itu ditambah dukungan dengan MIME supaya bisa mendukung yang lainnya.
2.1. Header yang terdapat pada MIME

Gambar 12.6 Contoh MIME
2.1.1. MIME-Version
Versi yang digunakan pada MIME
MIME-Version: 1.0
2.1.2. Content-Type
Tipe yang digunakan pada pesan
Content-Type: text/plain
Tabel 12.2 Contoh Content-type
| Tipe | Subtipe | Deskripsi |
|-------------|---------------|--------------------------------------------|
| Text | Plain | Unformated text |
| | Enriched | Text yang memiliki format |
| Image | Gif | Gambar dengan format GIF |
| | Jpeg | Gambar dengan format JPEG |
| Audio | Basic | Suara |
| Video | Mpeg | Film dengan format MPEG |
| Application | Octet-Stream | Sequence yang tidak terinterpreted |
| | Postscript | Dokumen for postscript |
| Message | RFC822 | MIME RFC 822 |
| | Partial | Pesan yang dipisah |
| | External-body | Pesan yang ditarik dari jaringan |
| Multipart | Mixed | Independent |
| | Alternative | Pesan yang sama beda format |
| | Parallel | Bagian yang harus dilihat secara bersamaan |
| | Digest | Tiap bagian merupakan bagian RFC 822 |
2.1.3. Content-Transfer-Encoding
Metode yang digunakan untuk pengiriman pada email, yaitu :
- 7bit
- Quoted-printable
- Base64.
2.1.4. Encoded-Word
Digunakan bila menggunakan karakter lain
2.1.5. Multipart-Messages
Pemisah bagian pesan
Content-type: multipart/mixed; boundary="frontier"
MIME-version: 1.0
This is a multi-part message in MIME format.
--frontier
Content-type: text/plain
This is the body of the message.
--frontier
Content-type: text/html; encoding=UTF-8
Content-transfer-encoding: base64
PGh0bWw+CiAgPGhlYWQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcyBpcyB0aGUg
Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==
--frontier--
3. Post-Office-Protocol (POP)
Para pengguna email, akan menggunakan protokol POP untuk mengambil email yang berada di server. Protokol yang digunakan sekarang adalah versi 3 sehingga disebut POP3.
POP3 berkembang dari protokol sebelumnya yang disebut POP (biasa disebut POP1) dan POP2.
Protokol POP3 didesign untuk pengguna dengan jaringan yang sebentar-bentar harus dimatikan. Sehingga pengguna dapat menggunakan email tanpa harus terkoneksi secara terus-menerus. Walaupun pada POP3 terdapat pilihan "leave messages on server", pengguna email biasanya akan mengkoneksikan, mengambil email dan menyimpan pada PC, menghapus email di server dan memutus koneksi.
POP3 server melayani pengguna melalui port 110.

Gambar 2.7 Contoh Penggunaan POP3
4. Internet Message Access Protocol version 4 (IMAP4)
IMAP4 adalah protokol yang dapat digunakan oleh pengguna untuk membaca email di suatu server. IMAP4 dijabarkan pada RFC 3501.
Contoh penggunaan telnet pada IMAP

Gambar 12.8 Telnet IMAP
5. Cara kerja Email
Client menggunakan MUA (Mail User Agent) untuk membaca email dengan cara POP3 atau IMAP4. Dan untuk mengirimkan email melalui protokol SMTP.

Gambar 12.9 Cara kerja EMAIL
Antar mail server atau MTA (Mail Transfer Agent) saling bertukar email melalui protokol SMTP, dan menyimpan email dalam format Mbox atau Maildir.
Mbox adalah tipe penyimpanan email dimana email disimpan dalam 1 file untuk masingmasing user.

Gambar 12.10 Maildir
Maildir adalah tipe penyimpanan email dimana email disimpan dalam 1 folder untuk masing-masing user.

Gambar 12.11 Mbox