SMTP

Posted: July 9, 2009 in Computer Networking
Tags: , ,

smtp-server-concept

SMTP (Simple Mail Transfer Protocol) merupakan salah satu protokol yang umum digunakan untuk pengiriman surat elektronik di Internet. Protokol ini dipergunakan untuk mengirimkan data dari komputer pengirim surat elektronik ke server surat elektronik penerima.

Protokol ini timbul karena desain sistem surat elektronik yang mengharuskan adanya server surat elektronik yang menampung sementara sampai surat elektronik diambil oleh penerima yang berhak.

SMTP bisa dianalogikan sebagai kantor pos. Ketika kita mengirim sebuah e-mail, komputer kita akan mengarahkan e-mail tersebut ke sebuah SMTP server, untuk diteruskan ke mail-server tujuan.

Mail-server tujuan ini bisa dianalogikan sebagai kotak pos di pagar depan rumah, atau kotak PO BOX di kantor pos. Email-email yang terkirim akan menempati di tempat tersebut hingga si pemiliknya mengambilnya. Urusan pengambilan e-mail tersebut tergantung kapan di penerima memeriksa account e-mailnya.

SMTP adalah protokol  yang cukup sederhana, berbasis teks dimana protokol ini menyebutkan satu atau lebih penerima email untuk kemudian diverifikasi. Jika penerima email valid, maka email akan  segera dikirim. SMTP menggunakan port 25 dan dapat dihubungi melalui program telnet. Agar dapat menggunakan SMTP server lewat nama domain, maka record DNS (Domain Name Server) pada bagian MX (Mail Exchange) digunakan.

Sendmail adalah Mail Transfer Agent pertama yang mengimplementasikan port 25. Kemudian, pada tahun 2001, ada sedikitnya 50 program Mail Transfer Agent yang mengimplementasikan SMTP baik sebagai client maupun sebagai server. Contoh Mail Transfer Agent yang populer adalah: Exim (ditulis oleh Philip Hazel), IBM Postfix, Qmail (ditulis oleh D.J Bernstain), dan Microsoft Exchange Server.

Karena protokol SMTP berawal dari protokol yang benar-benar berbasis teks ASCII, maka SMTP tidak bekerja terlalu baik dalam mengirimkan file-file binary. Standar untuk meng-encode file-file biner agar dapat dikirimkan lewat SMTP dikembangkan dan menelurkan standar-standar seperti MIME (Multipurposes Internet Mail Extensions). Saat ini, hampir semua SMTP server mendukung 8BITMIME, yang dapat mengirimkan file-file biner semudah mengirimkan file teks.

SMTP hanya protokol yang melakukan “push”, artinya dia hanya bisa mengambil email dari client tetapi tidak bisa melakukan “pull”, yaitu melayani pengambilan email di server oleh client. Pengambilan pesan atau email tersebut dilakukan dengan menggunakan protokol tersendiri yaitu protokop POP3 (Post Office Protokol) atau IMAP (Internet Message Access Protocol).

Multipurpose Internet Mail Extensions (MIME)

MIME adalah format standar internet untuk email. MIME mendefinisikan pengiriman pesan selain 8 bit karakter ASCII dengan file yang  berisi image, suara, movie, dan program komputer. MIME adalah salah satu komponen dasar pendukung protokol HTTP.

Contoh Komunikasi SMTP

Kita dapat berkomunikasi dengan menggunakan SMTP dengan telnet dengan membuka port 25. Di bawah ini adalah contoh komunikasi dengan SMTP dengan SMTP server mail.its.ac.id

[galih@nirmaladewi 12:09 galih]$ telnet pegasus 25

Trying 202.154.63.7…

Connected to pegasus.its.ac.id.

Escape character is ‘^]’.

220 pegasus.its.ac.id ESMTP

HELO 202.155.84.178

250 pegasus.its.ac.id

MAIL FROM galih@its.ac.id

250 ok

RCPT TO: galih02@inf.its-sby.edu

250 ok

DATA

354 go ahead

Subject: test SMTP

From: galih@its.ac.id

To: galih02@inf.its.ac.id

Hello…. I just call to say I love you

honey…. .

250 ok 1118293527 qp 25698

quit

221 pegasus.its.ac.id

Connection closed by foreign host.

Beberapa perintah di atas dapat dijelaskan berikut ini:

  • HELO: Kita melakukan hubungan dengan SMTP server di 202.155.84.178. Dalam hal ini adalah server yang akan menerima pesan yang akan kita kirim dari SMTP server yang kita gunakan sekarang (mail.its.ac.id)
  • MAIL FROM: <email@domain.com>: Alamat email pengirim. Alamat email ini harus sudah terdaftar di SMTP server yang dihubungi karena mayoritas SMTP server menutup akses dari alamat-alamat yang tidak terdaftar kecuali dengan autentikasi (tidak dibahas di artikel ini).
  • RCPT TO: <email@domain.com>: Alamat email yang dituju. Alamat ini harus terdaftar di
  • SMTP server yang kita hubungi dengan perintah HELO.
  • DATA: Baris setelah perintah ini menunjukkan pesan yang dikirim. Untuk mengakhiri pesan, tanda yang digunakan adalah tanda titik (.).

Untuk keluar dari SMTP server, kita dapat menggunakan perintah quit.

Windows MTA Server: Microsoft Exchange Server

Windows memiliki Mail Transfer Agent berbasis SMTP buatan Microsoft yang disebut Microsoft Transfer Agent. Seperti halnya software berbasis Windows lainnya, software ini juga melakukan manajemen-nya lewat window-window yang sangat user friendly. Sofware ini memiliki beberapa fitur seperti:

  • Integrasi dengan Active Directory.
  • Arsitektur database yang scalable
  • Kompabilitas ke belakang yang sangat tinggi.
  • Security:
  • Integrasi dengan Microsoft Outlook 2003
  • Mendukung clustering

Unix Based Mail Transfer Agent: Postfix

Postfix adalah Mail Transfer Agent yang mengimplementasikan SMTP yang open source dengan lisensi GPL. Postfix didesain sebagai alternatif Sendmail, mail transfer agent yang telah banyak digunakan namun terkenal sangat sulit dikonfigurasi.

Unix Based Mail Transfer Agent: Qmail

Qmail adalah server SMTP modern yang didesain untuk membuat Sendmail jadi kelihatan kuno. Qmail tidak dirancang untuk kemudahan penggunaan, tetapi dirancang untuk menjadi sebuah mail server yang komprehensif. Sama halnya dengan Postfix, Qmail bersifat open source dan didukung sepenuhnya oleh distro-distro besar Linux seperti RedHat, Debian, Gentoo, OpenBSD, dan juga tersedia untuk platform HP-UX

Pada umumnya SMTP diperoleh melalui provider (ISP). Berikut adalah list SMTP beberapa provider yang popular di Indonesia:

  1. Telkomnet/Speedy: stmp.telkom.net
  2. Fastnet/First Media/Kabelvision: mail.fast.net.id
  3. Indosat: smtp.indosat.net.id
  4. Biznet: smtp.biz.net.id
  5. Net-zap: smtp.net-zap.com
  6. Indonet: smtp.indo.net.id
  7. Uninet: smtp.uninet.net.id
  8. Linknet: mail1.link.net.id
  9. CBN: smtp.cbn.net.id
  10. Mynet: smtp.mynet.co.id
  11. Jetcoms: smtp.jetcoms.net
  12. NusaNet: smtp.nusa.net.id
  13. Wasantara: jakarta.wasantara.net.id
  14. Radnet: smtp.rad.net.id
  15. MelsaNet: smtp.melsa.net.id
  16. MitraNet: mail.mitra.net.id
  17. Centrin: mail.centrin.net.id
  18. VisionNet: pluto.vision.net.id
  19. Infoasia: smtp.infoasia.net
  20. Pacific: smtp.pacific.net.id
  21. Dnet: dnet.net.id

Siapakah yang bertanggungjawab atas terkirim/tidaknya email ?

Terkirim atau tidaknya e-mail, terlambat atau tidak tibanya e-mail, tergantung kepada kehandalan SMTP yang digunakan. Misalnya outgoing SMTP yang digunakan adalah: smtp.telkom.net , maka Telkom lah yang bertanggungjawab atas terkirim atau tidaknya suatu e-mail. Terganggunya jaringan antara komputer milik pelanggan dengan Telkom – atau antara Telkom dengan mail-server yang dituju, dapat menyebabkan kegagalan pengiriman e-mail.

Apa penyebab utama keterlambatan tibanya email ?

Terlambat atau tidak tibanya suatu e-mail, tergantung kepada antrian pada SMTP yang digunakan dan mail-server yang dituju. Misalnya outgoing SMTP yang digunakan adalah: smtp.telkom.net , maka tergantung sepanjang apa antrian e-mail yang masuk ke jaringan telkom. Apabila e-mail telah berhasil terkirim melalui SMTP Telkom, maka selanjutnya ketibaan e-mail tersebut tergantung pada antrian mail-server penerima.

Cara Kerja SMTP

Simple Mail Transfer Protocol (SMTP) didefinisikan dan digunakan dalam Internet untuk mengirimkan electonic mail  (E-mail). Cara  kerja SMTP mirip  yang dilakukan oleh FTP. SMTP menggunakan  beberapa  spool  dan  queue.  Pesan  yang  dikirim  oleh  SMTP akan  dikirimkan  dalam  queue.  SMTP  akan  menghindari  membalas  pesan  dari  queue  jika dihubungkan ke remote machine. Jika pesan tidak dapat dibalas dengan waktu yang telah ditentukan maka  pesan  akan  dikembalikan  ke  pengirim  atau  dipindahkan.  Interaksi  antara message  ke  User Agent dan ke Message Transfer Agent hingga diterima oleh Penerima.

1

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 :

  1. Header atau amplop, yang dijabarkan pada RFC 822.
  2. Konten atau isi, yang berisi tentang isi dari surat yang akan dikirimkan

Format mail header :

2

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.

3

Diagram alir pertukaran surat SMTP

4

  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
  6. Client mengisikan data sesuai dengan pesan yang akan dikirimkan hingga mengisikan CRLF kembali untuk menandakan berakhirnya data
  7. Pengirimkan akan menghentikan kegiatan dengan memberi perintah QUIT

Kecepatan koneksi antar kedua server SMTP (penerima dan pengirim) inilah yang menentukan kecepatan suatu email diterima.

Comments
  1. Salman says:

    Nice posting… Salam kenal…

  2. rahmad says:

    makasih informasinya

  3. penuliscemen says:

    nice post… salam kenal

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s