|

Q&A: Apa itu SMTP? dan bagaimana cara protokol SMTP bekerja?

Save or share to

SMTP (Simple Mail Transfer Protocol) merupakan sebuah protokol yang ditujukan untuk mengirim surat elektronik (email). Namun, protokol ini hanya ditujukan untuk mengirim pesan sesama client/perangkat pengirim dan server email saja; untuk melihat daftar email yang diterima sebuah client/perangkat perlu untuk menggunakan protokol POP (Post Office Protocol), IMAP (Internet Mail Access Protocol), atau mengakses situs HTTP/HTTPS yang dimiliki/dioperasikan oleh server email tersebut.
Sebelum sang client (alias User-Agent/UA) dapat mengirim surat melalui SMTP, client tersebut harus menghubungi dan mengecek apakah server email asal (sender Mail Transfer Agent/MTA) aktif dan bersedia untuk mengirim email. Jika server/MTA tersebut membalas permintaan sang client/UA dengan status “220 Ready for Mail”, maka client tersebut sudah dipastikan dapat mengirim email selama permintaan-permintaan client berikutnya tidak terganggu akibat masalah dalam jaringan yang menghubungkan sang client/UA dengan server/MTA.
Kemudian, client tersebut akan mengirimkan perintah EHLO kepada server email pengirim. Dalam kasus ini saya menggunakan perintah EHLO daripada HELO untuk menggunakan fitur-fitur yang ada di dalam protokol Extended SMTP, termasuk fitur autentikasi yang sering digunakan dalam banyak aplikasi dan layanan email saat ini. Jika server tersebut meminta sang client untuk menyebutkan data credentials (misal: alamat email dan password, atau token OAuth2) di dalam respons 250 dari server (misal: “250 AUTH LOGIN PLAIN DIGEST-MD5”), maka sang client akan mengirimkan data-data yang diminta dan server tersebut akan memverifikasinya.
Oke, anggap saja bahwa proses autentikasi tersebut telah usai. Client tersebut akan mulai untuk memasukkan data-data berikut (secara berurutan):
1. Alamat pengirim email, menggunakan perintah MAIL FROM
2. Alamat penerima email, menggunakan perintah RCPT TO
3. Isi pesannya, baik head (misal: metadata) dan body, menggunakan perintah DATA
Jika pesan tersebut sudah siap dikirim dari server, maka sang server akan memberikan kode status 250 kepada sang client. Server pengirim tersebut akan menjadwalkan pengiriman surat tersebut kepada server penerima (kecuali sang client memutuskan untuk mengirim perintah RSET sebelum surat tersebut dikirim dari server), dan jika server dan/atau alamat penerima tersebut tidak ditemukan, maka server pengirim tersebut berhak untuk memberitahu sang client bahwa pengiriman surat tersebut gagal, biasanya melalui email khusus dari program “mailer daemon” yang dijalankan oleh server pengirim tersebut.
Protokol SMTP juga dapat digunakan untuk memverifikasi jika alamat yang dituju ada, dengan menggunakan perintah VRFY, dan mengecek apakah koneksi server tersebut masih aktif dengan menggunakan perintah NOOP. Terakhir, jika client tersebut ingin memutuskan hubungan terhadap server pengirim, maka client tersebut dapat mengirimkan perintah QUIT untuk melakukannya.

Referensi

  1. https://www.samlogic.net/articles/smtp-commands-reference.htm
  2. https://www.ionos.com/digitalguide/e-mail/technical-matters/smtp-auth/

Thanks for reading this article! By the way, we’re also working on finishing these interesting posts. Revisit this site soon or follow us to see them once they’re published!

[display-posts post_status=”future” include_link=”false” wrapper_id=”future-list”]

Save or share to

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *