Mengirim Email Dengan Codeigniter

Mengirim Email Dengan Codeigniter
Kirim Email Dengan Codeigniter

Mengirim Email Dengan Codeignier sangat mudah di lakukan karena CodeIgniter sendiri telah membawa sebuah library Email untuk melalukan proses pengiriman email, dimana library ini sangat mudah untuk digunakan.

Anda juga bisa membaca user_guid codeigniter

Pada Tutorial kali ini kita akan belajar cara mengirimkan email melalui localhost dengan memanfaatkan SMTP Gmail.

Kenapa Harus Menggunakan SMTP Gmail?

Sebenarnya bisa saja menggunakan fungsi mail() bawaan PHP, akan tetapi fungsi ini memiliki banyak kekurangan sehingga kurang efektif digunakan.

Berikut adalah kekurangan fungsi mail() bawaan PHP:

  • Ada sebagian hosting yang menonaktifkan fungsi mail() sehingga apabila kita menggunakan fungsi ini maka kita tidak akan bisa mengirimkan email.
  • Setiap layanan hosting pasti ada batas jumlah pengiriman email setiap jamnya.
  • Proses pengiriman email dengan fungsi mail() tergolong lambat.
  • Dan lain sebagainya.

Sedangkan jika kita mengirimkan email menggunakan SMTP Gmail, semua kekurangan yang ada pada fungsi mail() dapat kita atasi dengan mudah.

Dengan memanfaatkan SMTP Gmail, sebenarnya kita menggunakan server email milik Google untuk mengirimkan email langsung dari aplikasi yang kita buat sehingga email tersebut lebih cepat sampai ke penerima.

Untuk mengikuti tutorial ini ada bebera hal yang harus anda siapkan, diantaranya:

Oke lansung ke pembahasan.!

Baca Juga:

Langkah-langkah Mengirim Email Dengan Codeigniter

Langkah: -1 Mengaktifkan Less Secure Apps Access

Hal ini bertujuan agar aplikasi yang kita buat dapat mengakses server Gmail sehingga dapat mengirimkan email. Tanpa melakukan hal ini kita tidak akan bisa mengirimkan email melalui SMTP Gmail.

Berikut langkah-langkahnya:

Kirim Email Dengan Codeigniter
Kirim Email Dengan Codeigniter

Langkah: -2 Membuat Controller kirim_email.php

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

Class Kirim_email extends CI_Controller {
  /**
  * Kirim email dengan SMTP Gmail.
  *
  */

  public function index()
  {
    // Konfigurasi email
    $config['mailtype']    = 'html';
    $config['charset']     = 'utf-8';
    $config['protocol']    = 'smtp';
    $config['smtp_host']   = 'ssl://smtp.gmail.com';
    $config['smtp_user']   = 'email-gmail-anda@gmail.com';
    $config['smtp_pass']   = 'password-gmail-anda';
    $config['smtp_port']   = 465;
    $config['crlf' ]       = "\r\n";
    $config['newline']     = "\r\n";
              

    // Load library email dan konfigurasinya
    $this->load->library('email', $config);

    // Email dan nama pengirim
    $this->email->from('no-reply@akbardesign.com', 'AkbarDesign.org | Akbar Design');

    // Email penerima
    $this->email->to('email-penerima@gmail.com');

    // Lampiran email, isi dengan url/path file
    $this->email->attach('https://akbardesign.org/wp-content/uploads/2019/05/Kirim-Email-Dengan-Codeigniter-1.jpg');

    // Subject email
    $this->email->subject('Mengirim Email Dengan CodeIgniter | AkbarDesign.org');

    // Isi email
    $this->email->message("Ini adalah contoh script mengirim email CodeIgniter yang dikirim menggunakan SMTP email Google (Gmail).<br><br> Klik <strong><a href=' https://akbardesign.org/mengirim-email-dengan-codeigniter/' target='_blank' rel='noopener'>disini</a></strong> untuk melihat tutorialnya.");

    // Tampilkan pesan sukses atau error
    if ($this->email->send()) {
        echo 'Sukses! email berhasil dikirim.';
    } else {
        echo 'Error! email tidak dapat dikirim.';
    }
  }
}

Selanjutnya silahkan akses controller yang telah anda buat! dan jika yang tampil di browser anda adalah Sukses! email berhasil dikirim. maka dapat di pastikan anda telah berhasil mengirim Email dari localhost dengan memanfaatkan SMTP Gmail.

Untuk memastikan silahkan cek email anda!

#Screenshot Email Pengirim

Mengirim Email Dengan Codeigniter
Mengirim Email Dengan Codeigniter

#Screenshot Email Penerima

Mengirim Email Dengan Codeigniter
Mengirim Email Dengan Codeigniter

Update 08/05/2019

Pada update ini saya melakukan sedikit prubahan pada controller dan menambahkan view

Controller

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

Class Welcome extends CI_Controller {
  
  public function index()
  {
  	if(isset($_POST['submit'])){

  		$this->form_validation->set_rules('to', 'Email', 'trim|required|valid_email|max_length[35]');
        $this->form_validation->set_rules('subject', 'Subject', 'trim|required|max_length[35]');
        $this->form_validation->set_rules('message', 'Message', 'trim|required|max_length[103]');
        $this->form_validation->set_error_delimiters('<label class="form-check-label">','</label>');

        if ($this->form_validation->run() == false) {
        	
        	$data['title'] = "Kirim Email Dengan Codeigniter";
        	$this->load->view('welcome_message',$data);
        
        }else{
        	
        	$to = $this->input->post('to');
        	$subject = $this->input->post('subject');
        	$message = $this->input->post('message');

        	$sendEmail = $this->_sendEmail($to,$subject,$message);
        	$this->session->set_flashdata('message',$sendEmail);
        	redirect('welcome');

        }  		
  	}else{
  		$data['title'] = "Kirim Email Dengan Codeigniter";
  		$this->load->view('welcome_message',$data);
  	}
  }

  public function _sendEmail($to,$subject,$message)
  {
    // Konfigurasi email
    $config['mailtype']    = 'html';
    $config['charset']     = 'utf-8';
    $config['protocol']    = 'smtp';
    $config['smtp_host']   = 'ssl://smtp.gmail.com';
    $config['smtp_user']   = 'email-gmail-anda@gmail.com';
    $config['smtp_pass']   = 'password-gmail-anda';
    $config['smtp_port']   = 465;
    $config['crlf' ]       = "\r\n";
    $config['newline']     = "\r\n";
              

    // Load library email dan konfigurasinya
    $this->load->library('email', $config);

    // Email dan nama pengirim
    $this->email->from('no-reply@akbardesign.com', 'AkbarDesign.org | Akbar Design');

    // Email penerima
    $this->email->to($to);

    // Lampiran email, isi dengan url/path file
    $this->email->attach('./assets/img/kirim-email.jpg');

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

    // Isi email
    $this->email->message($messag);

    // Tampilkan pesan sukses atau error
    if ($this->email->send()) {
    	return '<div class="alert alert-success alert-dismissible fade show" role="alert">
          <strong>Sukses!</strong> email berhasil dikirim.
          <button type="button" class="close" data-dismiss="alert" aria-label="Close">
            <span aria-hidden="true">&times;</span>
          </button>
        </div>';
    } else {
    	return '<div class="alert alert-warning alert-dismissible fade show" role="alert">
          <strong>Error!</strong> email tidak dapat dikirim.
          <button type="button" class="close" data-dismiss="alert" aria-label="Close">
            <span aria-hidden="true">&times;</span>
          </button>
        </div>';
    }
  }
}

View

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Welcome to CodeIgniter</title>

  <link href="<?=base_url().'assets/css/bootstrap.css' ?>" rel="stylesheet" type="text/css">
  <link href="<?=base_url().'assets/css/stylesheet.css' ?>" rel="stylesheet" type="text/css">

<body>
  <div class="container">
    <h1><?= $title ?></h1>
    <div class="row">
      <div class="col-sm-12">
        <?php echo $this->session->flashdata('message') ?>
      </div>
      <div class="col-sm-12">
        <?php echo form_open('welcome/index'); ?>
          <div class="form-group row">
            <label class="col-sm-2 col-form-label">To</label>
            <div class="col-sm-7">
              <input type="text" name="to" class="form-control" value="<?php echo set_value('to'); ?>" placeholder="email-tujuan@gmail.com">
              <?php echo form_error('to'); ?>
            </div>
          </div>
          <div class="form-group row">
            <label class="col-sm-2 col-form-label">Subject</label>
            <div class="col-sm-7">
              <input type="text" name="subject" class="form-control" value="Kirim Email Dengan Codeigniter">
              <?php echo form_error('subject'); ?>
            </div>
          </div>
          <div class="form-group row">
            <label class="col-sm-2 col-form-label">Message</label>
            <div class="col-sm-10">
              <textarea name="message" class="form-control" rows="3">Ini adalah contoh script mengirim email CodeIgniter yang dikirim menggunakan SMTP email Google (Gmail).</textarea>
              <?php echo form_error('message'); ?>
            </div>
          	
          </div>
          <div class="form-group row">
            <label class="col-sm-2 col-form-label"></label>
            <div class="col-sm-7">
              <button type="submit" name="submit" class="btn btn-info">Send Email</button>
            </div>
          </div>
        <?php echo form_close(); ?>
      </div>
    </div>
    <h5>Sumber: <a href="https://akbardesign.org/mengirim-email-dengan-codeigniter/">https://akbardesign.org/mengirim-email-dengan-codeigniter/</a></h5>
  </div>
  

  <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" type="text/javascript"></script>
  <script src="<?=base_url().'assets/' ?>js/bootstrap.min.js"></script>
  

</body>
</html>

#Screenshot View Kirim Email Dengan Codeigniter

Kirim Email dari localhost dengan SMTP Gmail dan Codeigniter

Download

Note:
Untuk mengirimkan email dari localhost, pastikan anda memiliki koneksi internet, tanpa koneksi internet email tidak akan terkirim dan akan muncul error. Selain itu pastikan tidak ada antivirus, firewall atau aplikasi lain yang memblokir port 465.

Be the first to comment

Leave a Reply

Alamat email Anda tidak akan dipublikasikan.


*