Nodemailer adalah modul JavaScript yang bisa kita manfaatkan untuk mengirimkan pesan email dengan mengkonfigurasi SMTP dari email server yang kita miliki.
Tapi sayangnya, seringkali dalam masa development kita hanya fokus untuk melihat bagaimana email yang kita kirim dari server diterima oleh pengguna, jadi kita belum memiliki mail server yang mungkin harganya tidak murah.
Beruntungnya Gmail menyediakan opsi untuk mengirimkan email melalui server mereka secara programmatically, kita bisa memanfaatkannya untuk sementara waktu. Karena dihilangkannya opsi "Less secure apps" pada akun google, kita bisa memanfaatkan cara lain, yakni dengan menggunakan OAuth2.
Pada tulisan bagian pertama ini, kita akan melakukan konfigurasi project pada Google Cloud Console, berikut cara konfigurasinya:
Masuk ke Google Cloud Console dan buatlah project baru
Klik ikon hamburger menu, pilih API Library
Masukkan Gmail pada kolom pencarian
Pilih Gmail API
Tekan Enable
Selanjutnya, masuk ke menu APIs & Services pilih OAuth consent screen
Pilih External dan tekan Create
Masukkan App name, bebas. Disini saya masukkan Nodemailer, dan pilih User support email dari dropdown yang disediakan
Scroll kebawah sedikit disana akan ada kolom untuk email, isi dengan email anda dan tekan Save and Continue
Selanjutnya, Tekan Add or Remove Scope
Pada kolom filter masukkan Gmail dan pilih Gmail API
Lalu centang Gmail API dan tekan Update
Jika pada section Your restricted scope sudah ada Gmail Scope, tekan Save and Continue
Tekan add user pada section Test users
Masukkan email dari akun google yang sedang dipakai, lalu tekan Save and Continue
Kembali ke menu, pilih Credentials
Klik Create Credentials dan pilih OAuth Client ID
Pilih Web Application untuk Application Type dan Name diisi bebas, disini saya masukkan Nodemailer
Pada section Autorized redirect URIs masukkan:
https://developers.google.com/oauthplayground
Simpan Client ID dan Client Secret untuk dipakai selanjutnya di OAuth Playground
Masuk ke OAuth 2.0 Playground dan pilih ikon gear pada samping kanan atas, centang Use your own OAuth credentials dan masukkan Client ID dan Client Secret yang sebelumnya kita dapatkan, lalu klik Close.
Pada Step 1 bagian kanan Playground, cari Gmail API v1 dan centang https://mail.google.com/
, lalu tekan Authorize APIs
Kita akan dialihkan ke halaman Authorization, pilih akun sedang kita pakai
Akan muncul alert seperti berikut, kita bisa menekan Continue saja
Lalu tekan Continue lagi
Nantinya, kita akan dikembalikan ke halaman playground Step 2 dengan Authorization Code yang sudah terisi, Tekan Exchange authorization code for tokens
Kolom refresh token akan terisi dan kita bisa simpan, karena ini akan kita gunakan di nodemailer pada tulisan bagian berikutnya.
Wrap up:
Jadi, pada bagian pertama ini kita sudah mendapatkan OAuth Client ID, OAuth Client Secret dan juga Refresh Token yang bisa kita gunakan pada nodemailer, untuk selanjutnya kita bisa lihat di bagian kedua
Part 2 - Nodemailer dengan Gmail OAuth2