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 = [email protected]
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
[email protected]
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 = '[email protected]'; //contoh [email protected]
$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' => '[email protected]',
'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;
}
}
}
?>