Kirim Email Menggunakan GMail dan Codeigniter 3

Kirim Email Menggunakan GMail dan Codeigniter 3

sobatcoding.com - Tutorial kirim email menggunakan akun GMail dan Codeinigter 3

Artikel kali ini kita akan mencoba membuat fungsi kirim email menggunakan codeingiter 3 dan gmail sebagai email provider.

Ada beberapa yang perlu diperhatikan atau dilakukan saat menggunakan akun gmail sebagai email provider agar bisa kita gunakan untuk mengirim email menggunakan PHP atau Codeigniter 3.

  1. Disabled 2 Step Verifications
  2. Enable atau Turn ON Less Secure App

Namun sejak 30 Mei 2022, fitur Less Secure App sudah dinonaktifkan oleh Google, jadi ada beberapa hal yang perlu disesuaikan

  1. Enable 2 Step Verifications
  2. Buat App Passwords atau Sandi Aplikasi
    Langkah-langkah untuk membuat sandi aplikasi seperti berikut:
    Masuk menu App Passwords atau Sandi Aplikasi di Google Manage Account
    Sandi Aplikasi
    Tambahkan Sandi Aplikasi baru, pilih aplikasi (pilih custom atau lainnya)
    Sandi Aplikasi
    Masukkan nama aplikasi (bebas)
    Sandi Aplikasi
    Kemudian muncul pop up beserta password yang sudah tergenerate secara otomatis
    Sandi Aplikasi
    Password yang sudah tergenerate diatas yang nanti akan kita pakai

 

Selanjutnya kita buat sebuah controller dan sebuah fungsi untuk kirim email seperti kode berikut :

$config['useragent'] = "CodeIgniter";
$config['mailpath'] = "/usr/bin/sendmail";
$config['protocol'] 	= "smtp";
$config['smtp_host'] 	= "smtp.gmail.com";
$config['smtp_port'] 	= 465;
$config['smtp_user'] 	= "<email_from>";
$config['smtp_pass'] 	= "<pwd>";
$config['smtp_crypto'] 	= "ssl";
$config['charset'] 		= "utf-8";					
$config['mailtype'] = "html";
$config['newline'] = "\r\n";
$config['smtp_timeout'] = 30;
$config['wordwrap'] = TRUE;

$this->load->library('email');
$this->email->initialize($config);
$this->email->from(<email_from>, <email_title>);
$this->email->to(<email_to>);
$this->email->subject(<subject>);

$this->email->message(<message>);

if ($this->email->send()) {
      echo 'Sukses! email berhasil dikirim.';
} else {
      echo  'Error! email gagal dikirim.';
}

 

Masukkan alamat email dan password hasil generate yang akan digunakan

$config['smtp_user'] 	= "akunemail@gmail.com"; //akun gmail yang dipakai
$config['smtp_pass'] 	= "random pwd"; //ubah sesuai dengan password hasil generate

 

Untuk debugging kalian bisa gunakan $this->email->print_debugger();

if ($this->email->send()) {
      echo 'Sukses! email berhasil dikirim.';
} else {
      var_dump($this->email->print_debugger());
}

 

Kalian juga bisa mengirim email menggunakan PHP Mailer

Langkah pertama install php mailer menggunakan composer

composer require phpmailer/phpmailer

Inisialisasi PHPMailer

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Mailer = "smtp";
$mail->SMTPDebug  = 1;  
$mail->SMTPAuth   = TRUE;
$mail->SMTPSecure = "tls";
$mail->Port       = 465;
$mail->Host       = "smtp.gmail.com";
$mail->Username   = "your-email@gmail.com";
$mail->Password   = "your-gmail-password";

$mail->IsHTML(true);
$mail->AddAddress("recipient-email@domain", "recipient-name");
$mail->SetFrom("from-email@gmail.com", "from-name");
$mail->AddReplyTo("reply-to-email@domain", "reply-to-name");
$mail->AddCC("cc-recipient-email@domain", "cc-recipient-name");
$mail->Subject = "Test Email sent via Gmail SMTP Server using PHP Mailer";
$content = "<b>This is a Test Email sent via Gmail SMTP Server using PHP mailer class.</b>";
$mail->MsgHTML($content); 
if(!$mail->Send()) {
  echo "Error while sending Email.";
  var_dump($mail);
} else {
  echo "Email sent successfully";
}

 

Sekian tutorial kali ini. Semoga bermanfaat.

Jika teman-teman memiliki pertanyaan atau saran mengenai artikel ini, jangan ragu untuk meninggalkan komentar pada form di bawah ini.