Cara Kirim email dari localhost XAMPP dengan Codeigniter

Kali ini saya akan membahas bagaimana caranya mengirimkan email dari localhost XAMPP dengan framework Codeigniter, Fitur ini dapat berjalan jika laptop/PC terhubung ke internet, email yang dimaksud disini yaitu GMAIL, ada beberapa tahapan setting baik di XAMPP dan PHP di CI.

Berikut langkah – langkahnya :
1. Buka directori tempat XAMPP ditempatkan, dan buka file php.ini yang berlokasi di folder XAMPP/php/php.ini atau bisa juga dengan cara seperti ini :

Setelah file php.ini terbuka coba cari fungsi yang ada di bawah dan setting seperti ini :

* pastikan tanda ; dihapus posisi harus terbuka seperti di bawah untuk fungsi yang digunakan.

SMTP=smtp.gmail.com smtp_port=587
sendmail_from = yourmail@gmail.com
sendmail_path = “\”C:\xampp\sendmail\sendmail.exe\” -t”
extension=php_openssl.dll 


2. Buka file sendmail.ini yang berlokasi di folder XAMPP/sendmail/sendmail.ini, setelah file sendmail.ini terbuka coba cari fungsi yang ada di bawah dan setting seperti ini :

*pastikan tanda ; dihapus posisi harus terbuka seperti di bawah untuk fungsi yang digunakan.


smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=yourmail@gmail.com
auth_password=your-gmail-password
force_sender=


3. Jika Anda belum mengaktifkan “Less secure apps” pada akun gmail yang akan Anda gunakan, maka Anda harus mengaktifkannya terlebih dahulu melalui alamat web https://www.google.com/settings/security/lesssecureapps,
lalu di bagian “Access for less secure apps”, pilih “Enable” (seperti gambar di bawah ini).

4.  lalu setting di Controller di CI yang anda buat :

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

class Sendmail extends CI_Controller {

    public function index()
    {

        // untuk kirim data via model 
        $this->sendmail_m->message();

        //untuk menangkap data yang dikirim dari form 
        $fname = $this->input->post('form_name');
        $femail = $this->input->post('form_email');
        $fsubject = $this->input->post('form_subject');
        $fmessage = $this->input->post('form_message');

        //set to_email id ke mana Anda ingin menerima email 
        $to_email1 = 'alamatGmail@gmail.com'; //contoh zai@gmail.com
        $recipientArr = array($to_email1);

        
        //Konfigurasi email 
        $config = Array(
            'useragent' => 'CodeIgniter',
            'protocol'  => 'smtp',
            'mailpath'  => '/usr/sbin/sendmail',
            'smtp_host' => 'ssl://smtp.googlemail.com',
            'smtp_port' => 465,
            'smtp_user' => 'yourmail@gmail.com',
            'smtp_pass' => 'your-password-gmail',
            'smtp_keepalive' => TRUE,
            'smtp_crypto' => 'SSL',
            'wordwrap'  => TRUE,
            'wrapchars' => 80,
            'mailtype'  => 'html',
            'charset'   => 'utf-8',
            'validate'  => TRUE,
            'crlf'      => "\r\n",
            'newline'   => "\r\n"
        );


        //load library email dan konfigurasinya
        $this->load->library('email', $config);
        $this->email->set_newline("\r\n");   

        //Kirim email
        //email dan nama pengirim 

        $this->email->from($femail, $fname);
        //email penerima 

        $this->email->to($recipientArr);

        //subject email
        $this->email->subject($fsubject);

        //isi email
        $this->email->message($fmessage);

        $result = $this->email->send();
        if ($this->email->send())
        {

            // berhasil
            echo 1;
        }
        else
        {
            // gagal
            echo 0;
        }
    }
} 

?>

Leave a Reply

Your email address will not be published. Required fields are marked *