Simple Mail Transfer Protocol (SMTP) adalah protokol berbasis TCP/IP yang dirancang untuk mengirim dan menerima email. Karena protokol terbatas dalam kemampuan untuk menyimpan atau mengantri pesan masuk, biasanya digunakan bersama IMAP atau POP3 untuk memungkinkan pengguna akhir menyimpan pesan di kotak surat server email untuk diunduh dari server sesuai permintaan. Akibatnya, SMTP terutama digunakan oleh konsumen untuk mengirim email dan IMAP atau POP3 untuk menerima email. Sendmail adalah paket asli yang digunakan dengan server POP3 built-in pada sistem komputasi berbasis Unix sementara Microsoft Exchange menyertakan server SMTP yang mendukung penggunaan ganda POP3 untuk surat masuk. Pada server email saat ini, ESMTP (Extended Simple Mail Transfer) biasanya digunakan untuk mendukung pengiriman file multimedia sebagai bagian dari email.

Sejarah SMTP

Ada sejumlah sistem pesan elektronik yang digunakan selama tahun 1960-an. Selama jangka waktu ini, individu akan berkomunikasi secara elektronik dengan sistem yang dirancang untuk caral komputer mainframe tertentu. Sebagai jumlah komputer yang saling berhubungan tumbuh untuk memasukkan ARPANET Pemerintah Amerika Serikat, standar komunikasi diciptakan untuk memungkinkan pengguna desain sistem yang berbeda untuk berkomunikasi dengan pengguna akhir lainnya. Simple Mail Transfer Protocol tumbuh dari karya asli pada standar email selama tahun 1970-an.

Lebih khusus lagi, sejarah SMPT didasarkan pada implementasi protokol awal pada tahun 1971: Protokol Kotak Surat dan program SNDMSG . Protokol Kotak Surat dibahas dalam RFC 196 bersama dengan penulisan standar lainnya, sementara SNDMSG dijelaskan dalam RFC 2235 dan dibuat untuk memungkinkan komputer TENEX mengirimkan pesan ke komputer lain di ARPANET. Pada saat itu, ada kurang dari 50 host komputer yang terhubung ke ARPANET.

Implementasi protokol email tambahan pada waktu itu termasuk Mail Protocol dan FTP mail pada tahun 1973. Sepanjang tahun 1970-an, pekerjaan akan berlanjut pada protokol email sampai ARPANET berkembang menjadi apa yang kita kenal sebagai Internet cararn sekarang pada tahun 1980. Pada tahun 1980, Jon Postel mengusulkan sebuah Mail Transfer Protocol yang menghilangkan ketergantungan email pada standar FTP. Pada bulan November 1981, Postel menerbitkan SMTP sebagai RFC 788 .

Masalah Awal dengan SMTP

Ketika Postel menerbitkan spesifikasi SMTP, Internet relatif kecil jika dibandingkan dengan apa yang kita kenal sebagai World Wide Web saat ini. Web terutama terdiri dari universitas, laboratorium penelitian perusahaan, dan instalasi militer selama jangka waktu ini dengan koneksi yang lambat dan sering kali tidak dapat diandalkan. Jumlah total host komputer pada saat itu cukup kecil sehingga masih memungkinkan bagi semua host komputer untuk saling mengenali. Akibatnya, SMTP berfokus pada keandalan wakil keamanan dan membantu berkontribusi pada adopsi protokol secara luas.

Selama jangka waktu yang sama, sebagian besar pengguna SMTP akan berusaha membantu satu sama lain dengan mengonfigurasi server email mereka sebagai “relai terbuka”. Ini akan memungkinkan setiap penyiapan server email sebagai relai untuk meneruskan email ke tujuan akhirnya. Sebagai hasil dari kemampuan relay, keandalan pengiriman email meningkat secara signifikan.

Hanya beberapa tahun sebelum publikasi SMTP pada tahun 1978, contoh spam pertama yang didokumentasikan dari perwakilan penjualan DEC. Dia mengirimkan pengumuman demonstrasi produk ke beberapa ratus penerima yang sedang online. Terlepas dari protes dari mereka yang menerima email, spam akan menjadi masalah yang signifikan bagi pengguna email di bagian akhir tahun 1990-an karena jumlah total pengguna email meningkat secara eksponensial.

Ikhtisar Protokol SMTP

Simple Mail Transfer Protocol (SMTP) dirancang untuk menjadi protokol berorientasi koneksi berdasarkan teks. Ini mendukung kemampuan pengirim surat untuk berkomunikasi dengan penerima surat melalui mengeluarkan string perintah bersama dengan informasi pendukung melalui aliran transmisi yang dipesan dengan andal. Aliran ini biasanya merupakan koneksi TCP ( Transmission Control Protocol ).

Simple Mail Transfer Protocol mendefinisikan transportasi pesan, tetapi bukan konten pesan email. Ini dapat dianggap sebagai mendefinisikan amplop email dan parameter tetapi bukan isi pesan. Standar 5321 mendefinisikan amplop SMTP saat ini dan standar 5322 mendefinisikan header dan isi pesan email yang biasanya disebut sebagai Format Pesan Internet.

Setelah dibuat, sesi SMTP terdiri dari perintah yang diberikan oleh pengirim atau klien SMTP yang memulai dan respons server SMTP. Setelah sesi dibuka, parameter dipertukarkan dan dapat mencakup nol hingga beberapa transaksi SMTP. Satu transaksi didefinisikan oleh tiga pertukaran atau urutan perintah/balasan. Ini termasuk: 1- perintah MAIL untuk membantu menetapkan Return-PATH (mfrom) atau alamat pengirim, 2 – perintah RCPT yang menetapkan penerima pesan. Beberapa perintah RCPT dapat dikeluarkan untuk surat yang masuk ke lebih dari satu penerima dan merupakan bagian dari amplop, dan 3 – DATA untuk mengirim teks pesan.

Perintah DATA mencakup konten utama email atau pesan. Pesan DATA menyertakan header dan isi pesan yang dipisahkan oleh baris kosong. Karena pesan DATA menyertakan sekelompok perintah, server email akan membalasnya dua kali: satu kali untuk perintah awal dan mengakui bahwa ia siap menerima informasi, dan yang kedua setelah urutan data-ke-data selesai. untuk menerima atau menolak seluruh pesan.

Selain balasan perantara untuk pesan SMTP DATA, balasan setiap server email dapat berupa respons positif atau negatif. Respons positif terdiri dari kode balasan 2XX, yang negatif dapat berupa kode 4xx permanen, 5xx, atau sementara. Kode penolakan adalah kegagalan permanen oleh server SMTP. Jika terjadi penolakan, klien SMTP harus mengirim pesan pentalan. Sebuah pesan drop adalah respon positif diikuti dengan membuang pesan.

Host komputer yang memulai, atau klien SMTP, dapat berupa klien email di komputer pengguna akhir, agen transfer email (MTA) server relai yang bertindak sebagai klien SMTP saat menyampaikan email, atau MUA (agen pengguna email). Server SMTP yang sepenuhnya mampu dapat menyimpan antrian pesan untuk mengirim ulang transmisi pesan yang terhenti karena kegagalan sementara.

Pelabuhan SMTP

Saat SMTP dikonfigurasi, administrator server akan memilih apakah klien email akan menggunakan port TCP 25 (SMTP atau port 587 (Pengajuan) atau tidak untuk menyampaikan atau mengirim email keluar ke server email awal. Penggunaan port 587 pertama kali dijelaskan di RFC 2476 dan kemudian diformalkan dalam RFC 6409. Mayoritas spesifikasi terkait SMTP / email mencakup dukungan untuk kedua port. Ada beberapa server email yang digunakan di industri, namun yang menggunakan port 465 untuk komunikasi SMTP lama dan aman terhadap standar yang dipublikasikan.

Ada beberapa server email yang diatur untuk menolak semua relai email melalui port 25; namun, pengguna akhir yang valid yang telah diautentikasi pada port 587 kemudian diizinkan untuk menyampaikan email ke alamat yang valid. Selain itu, beberapa Penyedia Layanan Internet (ISP) akan mencegat port 25 dan mengarahkan lalu lintas ke server SMTP ISP terlepas dari alamat tujuan akhir. Tindakan ini membuat pengguna tidak dapat mengakses server SMTP di luar jaringan ISP dengan menggunakan port 25. Ada beberapa server SMTP yang akan mendukung akses terotentikasi pada port alternatif selain 25 atau 587 untuk memungkinkan pengguna terhubung ke layanan meskipun port 25 diblokir. Port 587 telah menjadi port standar dan paling banyak mendukung pengguna untuk mengirimkan email baru.

Pada saat penulisan ini, Microsoft Exchange Server 2013 SMTP mampu mendengarkan pada port 25, 465, 475, 587, dan 2525 tergantung pada peran apa yang digabungkan pada server tunggal. Untuk Exchange, port 25 dan 587 dirancang untuk memungkinkan konektivitas klien ke layanan transportasi front-end pada peran CAS (server akses klien). Port 475, 465, dan 25 terutama digunakan oleh layanan transportasi kotak surat; namun ketika peran kotak surat dan CAS digabungkan pada satu server, port 2525 digunakan oleh peran kotak pesan untuk SMTP dan CAS akan terus mengakses port 25.

SMTP port 465 digunakan oleh MTS untuk menerima koneksi klien yang diproksi oleh peran CAS di server. 475 digunakan untuk memfasilitasi komunikasi antara peran kotak surat dan mentransfer surat antara layanan pengiriman transportasi kotak surat dan layanan pengiriman transportasi kotak surat.

Apa itu Model Pemrosesan Surat?

Dalam caral pemrosesan surat, email ditransmisikan atau dikirimkan oleh MUA ke MSA (agen pengiriman surat) menggunakan SMTP melalui port TCP 587. Pada titik ini, MSA akan mengirim surat ke MTA (agen transfer surat) yang ditunjuk. Di sebagian besar kasus ini, kedua agen akan menjadi contoh berbeda dari aplikasi perangkat lunak yang sama yang berjalan dengan opsi berbeda pada komputer atau mesin yang sama.

Dalam caral pemrosesan surat, pemrosesan email lokal dapat dilakukan pada satu komputer host atau dibagi di antara berbagai komputer. Ketika pemrosesan diselesaikan pada satu host, beberapa proses dirancang untuk berbagi file. Ketika dua atau lebih komputer digunakan, protokol SMTP digunakan untuk mentransfer pesan antara host. Masing-masing proses ini dianggap sebagai MTA atau server SMTP.

MTA yang bertindak pada batas bertugas untuk menemukan host yang ditunjuk atau ditargetkan. Ini menyelesaikan tugas ini dengan mencari data MX (data penukar email) untuk domain penerima menggunakan DNS (sistem nama domain). Data MX yang dikembalikan akan menyertakan nama host yang ditargetkan. MTA kemudian akan terhubung ke server pertukaran yang bertindak sebagai klien SMTP.

Setelah host yang ditunjuk menerima pesan masuk, koneksi akan diteruskan ke MDA (mail delivery agent) untuk pengiriman email. MDA cararn mampu menyimpan pesan dalam format kotak surat yang sesuai menggunakan satu atau banyak komputer. Setelah email diterima, MDA mampu mengirimkan pesan langsung ke kotak surat untuk penyimpanan, menggunakan LMTP ( Protokol Transfer Surat Lokal ) atau SMTP untuk mengirimkan pesan di server yang ditargetkan.

Setelah pesan dikirim ke server email lokal yang ditunjuk, email disimpan untuk diambil oleh MUA atau klien email yang berwenang (alias diautentikasi). Email dapat diambil menggunakan aplikasi atau klien email menggunakan PO (Post Office Protocol) atau melalui antarmuka web menggunakan IMAP (Internet Message Access Protocol).

Contoh Transportasi SMTP

Berikut ini adalah contoh pesan email yang dikirim menggunakan SMTP ke dua kotak surat yang terletak di domain email yang sama. Setelah klien pengirim pesan (klien SMTP) membuat koneksi yang andal ke penerima pesan (server SMTP), sesi SMTP akan terbuka dengan salam server yang akan menyertakan FQDN (nama domain yang sepenuhnya memenuhi syarat). Klien kemudian akan memulai dialognya menggunakan perintah HELO untuk memasukkan FQDN-nya.

SMTP Server: 220 smtp.tech-faq.org ESMTP Postfix
SMTP Client: HELO relay.example.org
SMTP Server: 250 Halo relay.tech-faq.org, saya senang bertemu dengan Anda
SMTP Client:: MAIL FROM:<bob @tech-faq.com>
SMTP Server: 250 Ok
SMTP Client:: RCPT TO:<janice@tech-faq.com>
SMTP Server: 250 Ok
SMTP Client:: RCPT TO:<will@ tech-faq.com>
SMTP Server: 250 Ok
SMTP Client:: DATA
SMTP Server: 354 Akhiri data dengan <CR><LF>.<CR><LF>
SMTP Client:: From: “Will ” <will@tech-faq.com>
SMTP Client: : Kepada: “Janice” <alice@tech-faq.com>
Klien SMTP:: Cc: will@tech-faq.com
Klien SMTP:: Tanggal: Sab, 11 Mei 2013 19:04:55 -0100
Klien SMTP:: Subjek: Uji pesan
SMTP Klien
SMTP: Klien SMTP: Halo Janice.
SMTP Client:: Ini adalah tes untuk menampilkan lima bidang header dan empat baris di badan pesan.
Klien SMTP:: Hormat kita,
Klien SMTP:: Akankah
Klien SMTP::.
SMTP Server: 250 Oke: antri sebagai 12345
SMTP Client:: QUIT
SMTP Server: 221 Bye
{Server SMTP sekarang menutup koneksi}
Dalam contoh, klien SMTP akan memberi tahu penerima alamat email asal komunikasi menggunakan MAIL DARI perintah. Dalam contoh ini, pesan dikirim ke dua kotak surat fiktif di server SMTP yang sama. Satu receiver terdaftar di bidang header TO dan CC. Perintah selanjutnya adalah RCPT TO. Setelah setiap penerimaan dan eksekusi perintah yang berhasil, server akan mengakui dengan kode hasil dan respons.

Ketika tubuh pesan ditransmisikan, itu akan dimulai dengan perintah DATA. Kemudian, pesan ditransmisikan kata demi kata dan dilengkapi dengan urutan akhir data yang terdiri dari: baris baru (<CR><LF>), titik (titik), dan diikuti oleh baris baru lainnya.

Karena badan pesan email mana pun dapat menyertakan baris dengan satu titik sebagai bagian dari teks pesan, klien email akan mengirimkan dua periode setiap kali satu baris memiliki titik. Server kemudian akan mengganti urutan dua periode di awal baris dengan satu periode. Metode melarikan diri ini disebut sebagai “isian titik.”

Balasan positif server email terhadap indikasi “end-f-data” akan menyiratkan bahwa server email tidak memiliki tanggung jawab untuk mengirimkan pesan email. Jika terjadi kegagalan komunikasi selama ini, pesan dapat disampaikan dua kali berdasarkan apakah pengirim pesan telah menerima 250 tanggapan atau tidak. Selama jangka waktu ini, baik agen pengirim maupun penerima memiliki salinan persis dari pesan email yang akan mereka coba sampaikan.

Perintah SMTP QUIT akan mengakhiri sesi email. Jika ada beberapa penerima pada pesan yang terletak di server web lain, klien email akan BERHENTI dan menyambung ke server SMTP yang sesuai untuk penerima pesan tambahan.