Kirim Email Massal dengan Go

Figure 1. Golang doll (https://commons.wikimedia.org/wiki/File:Golang_Gopher.jpg)

Hari ini merupakan hari ujian anak-anak. Hasil ujian jika sudah selesai nilai akan dikirimkan ke email masing-masing. Daripada repot dan ribet mengirim satu-satu saya coba coding sedikit dengan Golang. Memanfaatkan pustaka dari gomail hanya membutuhkan beberapa menit untuk menyelesaikan beberapa baris kode hingga bisa digunakan.


Kita akan coba bahas satu per satu yang bagian penting saja. Saya tidak akan membahas bagaimana cara menginstal Golang. Silakan cari sendiri karena sudah cukup banyak. Golang saya jalankan di Microsoft Windows 10 Home 64-bit dengan RAM 8GB. Untuk memasang Golang, mengkompilasi hingga menjalankan tidak membutuhkan spesifikasi komputer yang tinggi. Golang yang saya pasang adalah versi go1.11.2 windows/amd64.

Bagi yang sudah tidak sabar silakan kopi saja kode berikut dan lakukan perubahan yang diperlukan.

Kode Lengkap dari Email Massal

Email massal ini memanfaatkan berkas CSV. Sehingga data email harus ada pada berkas CSV yang akan diikutsertakan. Sebagai informasi, isi berkas CSV pada contoh diatas hanya ada dua, pertama adalah alamat email yang akan dituju dan isi kontennya dalam dua kolom. Hal yang penting yang harus diubah disini ada beberapa:

  1. Berkas CSV
csvfile, _ := os.Open("list_mahasiswa.csv")  
reader := csv.NewReader(csvfile)

Perhatikan berkas CSV list_mahasiswa.csv diatas, silakan sesuaikan dengan berkas yang anda miliki.

2. Dari (From:) dan Kepada (To:)

m.SetHeader("From", "masganteng@andrey.web.id")  
m.SetHeader("To", record[0]+"@mahasiswa.edu")

Silakan diganti bagian From dan sesuaikan dengan akun nama email yang benar-benar valid anda miliki. Kedua To disini jika diperhatikan ada kode sebagai berikut record[0]+”mahasiswa.edu”. Kembali perhatikan kode diatas bahwa baris m.SetHeader sudah masuk dalam badan perulangan (loop). Perulangan akan berhenti seiring dengan jumlah baris yang ada pada isi berkas CSV. Untuk record[0] adalah kolom pertama dari isi berkas CSV yang berisi nama user e-mail yang akan dituju diakhiri dengan “@mahasiswa.edu”. Silakan diganti dan sesuaikan dengan yang dibutuhkan.

3. Variabel batasNilai

Variabel ini sebenarnya tidak terlalu penting dan hanya digunakan untuk menginformasikan apabila nilai mahasiswa ada di batasNilai maka dia aman dan lolos. Sedangkan jika dibawah itu maka harus mengulang kembali ujiannya.

4. Konfigurasi SMTP server

Ini adalah bagian yang juga tidak kalah penting yakni konfigurasi SMTP server yang harus jelas.

d := gomail.NewDialer(“<smtp server mu>”, 465, “<username mu>”, “<password mu>”)

Apa yang ada dalam tanda petik dua itu yang perlu diubah. Adapun nomor 465 diatas adalah port number yang digunakan untuk akses mail server kita. Karena saya menggunakan fasilitas autentikasi dan enkripsi tentu saja pilihan jatuh pada port 465. Silakan ini diubah jika ternyata SMTP server yang kita miliki tidak bisa mengirimkan email. Sisanya seperti username dan password adalah username dan password email kita yang ada pada SMTP server tersebut.

Semoga bermanfaat dan silakan mencoba,

*hawanya sedang melelahkan

andrey ferriyan