Mengirim Email dengan PHP, Codeigniter dan gmail di Linux Ubuntu

codeigniter

Email adalah salah satu sarana berkomunikasi di dunia maya, dan beberapa proyek aplikasi web juga memerlukan fungsi email ini seperti untuk mengirim email konfirmasi akun pengguna yang dibuat dan kegunaan lainnya, PHP menyediakan fungsi mail() untuk mengirim email melalui aplikasi, hanya saja fungsi ini bisa berjalan langsung jika sudah berada di live server atau hosting server, akan tetapi tidak untuk local server/localhost, tutorial pada artikel ini akan menbahas bagaimana mengirim email dari localhost dengan PHP, Codeigniter dan gmail di Linux Ubuntu.

Persyaratan :

  1. Akun gmail, dengan catatan akun gmail yang digunakan tidak menggunakan 2 factor authentication, dan aktifkan mode “Izinkan aplikasi yang kurang aman”.
  2. framework codeigniter

Langkah #1 – Pasang Aplikasi msmtp dan ca-certificates

msmtp adalah smtp klien, penjelasan lebih lanjut ada disini.

ca-certificates diperlukan karena gmail menggunakan https.

untuk memasang keduanya jalankan perintah berikut :

$ sudo apt install msmtp ca-certificates

jika sudah selesai maka lanjutkan ke langkah ke 2

Langkah Ke #2 – Membuat file konfigurasi msmtprc

untuk membuat file konfigurasi msmtprc, buka text editor yang digunakan, seperti gedit

$ sudo gedit /etc/msmtprc

dan masukkan beberapa baris script berikut :

defaults
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt

account default
host smtp.gmail.com
port 587
auth on
user id-gmail@gmail.com
password pass-gmail
from id-gmail
logfile /var/log/msmtp.log

ganti id-gmail dengan akun gmail yang akan digunakan, dan pass-gmail dengan password gmail yang akan digunakan, jika sudah atur hak akses file konfigurasi.

$ sudo chmod 644 /etc/msmtprc

Langkah Ke #3 – Membuat Log msmtp

Buat file log msmtp dengan perintah :

$ sudo touch /var/log/msmtp.log

kemudian atur hak akses nya :

$ sudo chmod 777 /var/log/msmtp.log

jika sudah selesai maka konfigurasi smtp klien sudah selesai, dan jika ingin mencoba bisa menjalankan perintah berikut :

$ echo -e "Subject: Test Mail\r\n\r\nTest email dari localhost." | msmtp --debug --from=default -t id-gmail-anda@gmail.com

kemudian cek di folder inbox gmail anda.

Langkah Ke #4 – Membuat script kirim email dengan framework codeigniter

Framework codeigniter menyediakan library untuk mengirim email, pada contoh ini, saya akan menggunakan library tersebut, buat controller baru di folder controller. sebagai contoh saya membuat controller Email.php didalam folder controller, dan masukkan script berikut :

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Email extends CI_Controller {

  public function kirim(){
     $this->load->library('email');
     $this->email->from('admin@gmail.com', 'Admin CMS');
     $this->email->to('user@gmail.com'); 
     $this->email->subject('Terima Kasih Akun anda sudah aktif');

     if($this->email->send()){
        echo "kirim email berhasil";
     }else{
        echo "kirim email gagal";
     }
  }
}

Kemudian jalankan di browser, http://localhost/namaAplikasi/email/kirim. jika yang tampil adalah pesan “kirim email berhasil”, silahkan periksa folder inbox email untuk mengecek apakah email sudah terkirim.