Kirim email ketika kita membuat website sudah menjadi hal yang umum, dengan tujuan pengguna mendapatkan informasi yang harus mereka dapatkan. Ketika pengiriman email ada salah satu protokol yang disebut SMTP dan kita akan membahas penggunaan SMTP pada gmail. Pengaturan SMTP pada gmail biasanya cukup dengan menggunakan:
- Host
- Username
- Password
- Port
- Certificate (SSL/ TLS)
- Mengaktifkan Less Secure Apps
Tapi dengan adanya perubahan yang ditetapkan oleh gmail per 30 Mei 2022, bahwa less secure apps tidak akan didukung lagi oleh gmail. Ketika saya lakukan research, ada alternatif yang bisa kalian lakukan tanpa menggunakan less secure apps. Kalian bisa ikuti langkah – langkah yang akan saya beritahu ya.
- Pastikan two step verification aktif (Jika belum aktif, disarankan aktifkan dengan nomor handphone yang sedang dipakai)
- Jika sudah aktif, kalian bisa ke menu my google account -> security

- Klik App passwords
- Masukkan data App (Mail) dan data device (Other)
- Berikan nama password atau labeling untuk memudahkan fungsi dan tujuan app password yang akan dibuat
- Klik Generate

Dengan langkah yang telah kita lakukan, kita sudah mendapatkan password untuk kebutuhan konfigurasi SMTP kita. Jadi apa hubungannya dengan codeigniter? Kita akan melakukan praktik dengan kode codeigniter.
public function kirim_email(){
// load library email
$this->load->library('email');
// konfigurasi akun email
$config = array();
$config['protocol'] = 'smtp'; // protokol kirim emailnya
$config['smtp_host'] = 'smtp.gmail.com'; // host gmail
$config['smtp_user'] = 'emailkalian@gmail.com'; // email kalian
$config['smtp_pass'] = 'generatedAppPassword'; // hasil generate password ditaruh disini
$config['smtp_crypto'] = 'tls'; // jenis sertifikasi
$config['smtp_port'] = 587; // port
$config['charset'] = 'iso-8859-1'; // charset
$config['wordwrap'] = TRUE; // wordwrap
$config['mailtype'] = 'html'; // type html, text
$config['newline'] = "\r\n"; // newline
$this->email->initialize($config);
// konfigurasi tujuan, isi pesan dan pengirim
$this->email->from('emailkalian@gmail.com', 'Belajar Apa Aja');
$this->email->to("tubaguskencana@gmail.com");
$this->email->subject('Test Kirim Email');
$this->email->set_newline("\r\n");
// isi pesan
$pesan = "<h1>Hello world!</h1>";
$this->email->message($pesan);
// memberikan kondisi, jika email tidak terkirim maka kita akan liat penyebabnya
if (!$this->email->send()){
echo $this->email->print_debugger();
}else{
// pesan jika berhasil
echo "Berhasil dikirim!";
}
}
Tambahkan fungsi kode tersebut kedalam controller yang telah dibuat. Penjelasan sudah dibuat dalam bentuk komentar didalam kodenya. Note: Jika email tiba - tiba tidak bekerja, kalian bisa cek inbox kalian biasanya akun kalian didisabled oleh google dan perlu di enable manual. Saya sempat mengalami hal tersebut soalnya.
Anda dapat mempelajari berbagai hal pada website ini. Jika anda ingin mempelajari hal lain diluar teknologi, kalian bisa melihat kategori belajar apa aja. Terima kasih!