Nida Regita F SEO Technical Writer at Niagahoster. An aquarius girl who loves music, watching movies and of course writing.

Panduan CodeIgniter PHPMailer dengan 6 Langkah Mudah

6 min read

Cara Mengirim Email dengan PHP

Untuk berkirim email, fungsi mail() bawaan PHP bukanlah satu-satunya pilihan. Anda juga bisa menggunakan PHPMailer, sebuah library kirim email yang populer digunakan di berbagai framework PHP seperti CodeIgniter. 

Lalu, adakah tutorial CodeIgniter PHPMailer yang mudah dicoba agar pengiriman email menjadi lebih efektif? 

Artikel kami berikut bisa menjadi jawabannya. Kami akan menjelaskan secara lengkap panduan CodeIgniter PHPMailer. Yuk, simak lebih lanjut.

Tutorial CodeIgniter PHPMailer

Sebelum mengikuti panduan CodeIgniter PHPMailer, ada beberapa hal yang perlu Anda siapkan, yaitu :

  • XAMPP. CodeIgniter merupakan framework PHP yang membutuhkan aplikasi server : PHP, web server dan database server. XAMPP merupakan aplikasi yang mem-bundling semuanya, sehingga Anda tidak perlu menginstalnya satu persatu.
  • CodeIgniter (CI). Anda dapat menginstall CodeIgniter dengan 2 cara. Pertama, dengan cara manual (download dan ekstrak file CI). Kedua, menginstallnya melalui composer dengan perintah composer create-project codeigniter4/appstarter nama_folder .
  • Composer. Kami menginstall PHPMailer di CodeIgniter melalui composer. Oleh karena itu, penting bagi Anda untuk menginstall composer terlebih dulu.
  • Code Editor. Kami menggunakan Visual Studio Code (VS Code) untuk menulis kode pemrograman.
  • Akun Gmail. Pada tutorial kali ini, kami akan mengirim email menggunakan Gmail.

Jika semua sudah disiapkan, Anda dapat langsung mengikuti 6 langkah tutorial CodeIgniter PHPMailer berikut ini :

  1. Setting Akun Gmail
  2. Install PHPMailer di CodeIgniter
  3. Membuat View Form Kirim Email
  4. Menambahkan File CSS
  5. Membuat Controller
  6. Testing Mengirim Email

Sudah siap? Simak panduan lengkapnya di bawah ini!

1. Setting Akun Gmail 

Langkah pertama dalam panduan CodeIgniter PHPMailer adalah melakukan setting pada akun Gmail.  Anda perlu memberi izin akses pada aplikasi pihak ketiga untuk dapat mengirim email menggunakan akun Gmail Anda. 

Pertama-tama, silahkan login pada akun Google Anda terlebih dulu. Pada bagian pojok kanan atas, klik ikon profile Anda. Lalu, masuk ke pengaturan akun dengan memilih menu Manage your Google Account.

Manage Google Account

Jika sudah masuk ke halaman pengaturan, pilih Security pada sidebar menu.

Pilih Menu Security di Akun Google

Kemudian, scroll ke bawah dan temukan pengaturan Less secure app access. Untuk mengaktifkannya, klik Turn on access.

Aktifkan Less secure app access

Selanjutnya, pindahkan toggle menjadi ON seperti pada gambar berikut ini :

Pindahkan toggle less secure app access menjadi ON

Nah, sekarang akun Gmail Anda sudah siap digunakan. Tapi, jangan lupa Anda harus membuat kode program CodeIgniter PHPMailer dulu, ya.

Baca juga: Cara Mengatasi A Database Error Occurred CodeIgniter

2. Install PHPMailer di Codeigniter 

PHPMailer merupakan library yang dapat memudahkan Anda untuk mengirim email menggunakan PHP. Banyak PHP Developer yang menilai library ini lebih baik dari fungsi mail() bawaan PHP yang seringkali error, seperti error tidak terkirimnya pesan ke email penerima.

PHPMailer juga mendukung penggunaan protokol SMTP dan autentikasi melalui SSL dan TSL. Sehingga proses mengirim email akan menjadi lebih aman.

Cara menginstall PHPMailer juga cukup mudah. Jika semua persiapan sudah lengkap, bukalah folder project CodeIgniter Anda di VS Code. Kemudian, pilih menu Terminal, lalu klik New Terminal untuk membuka terminal baru.

Membuka terminal di VS Code untuk install CodeIgniter PHPMailer

Anda bisa langsung menginstall PHPMailer di CodeIgniter melalui composer dengan menjalankan perintah berikut ini pada terminal:

composer require phpmailer/phpmailer

Jika informasi pada terminal seperti di bawah ini, artinya PHPMailer sudah terinstall pada project CodeIgniter Anda:

Menginstall codeigniter phpmailer

Oiya, perhatikan versi PHP Anda ya, karena PHPMailer terbaru hanya bisa digunakan pada PHP versi 5.5 ke atas.

3. Membuat View Form Kirim Email

Sekarang, waktunya membuat tampilan form yang akan digunakan untuk mengirim email. Di CodeIgniter, Anda dapat membuat file view pada folder App/Views

Baca Juga : Struktur Folder Codeigniter

Buatlah file dengan nama tampilan_form_sendmail.php dan salinlah kode berikut ini pada file tersebut :

<!DOCTYPE html>
<html>

<head>
	<title>Niagahoster Tutorial</title>
	<link rel="stylesheet" type="text/css" href="/css/style.css">
	<link href="https://fonts.googleapis.com/css?family=Quicksand&display=swap" rel="stylesheet">
	<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
</head>

<body>
	<div class="container">
		<div class="contact-box">
			<div class="left"></div>
			<div class="right">
				<h2>Codeigniter 4 PHPMailer</h2>

				<?php
				if (!empty(session()->getFlashdata('success'))) { ?>
					<div class="alert-success">
						<?php echo session()->getFlashdata('success'); ?>
					</div>
				<?php }

				if (!empty(session()->getFlashdata('error'))) { ?>
					<div class="alert-danger">
						<?php echo session()->getFlashdata('error'); ?>
					</div>
				<?php }

				echo form_open('email/sendmail'); ?>

				<input type="email" name="to" class="field" placeholder="To">
				<input type="text" name="subject" class="field" placeholder="Subject">
				<textarea type="text" name="message" placeholder="Message" class="field"></textarea>

				<button class="btn" type="submit">Send</button>
				</form>
			</div>
		</div>
	</div>
</body>

</html>

Kode tersebut akan membuat sebuah form yang terdiri dari 3 field, yaitu : to, subject dan message:

  • Field  to merupakan tempat untuk menuliskan alamat email penerima. 
  • Field subject adalah kolom untuk menuliskan subjek email. 
  • Field message adalah kolom untuk menuliskan isi pesan.

Data yang ditulis pada form tersebut akan dikirim ke email penerima ketika tombol Send di klik. 

Kode di atas juga menambahkan flash data yang berisi pesan berhasil ataupun gagal mengirim email. Namun, tentu saja Anda harus menambahkan file controllernya dulu, ya.

Baca Juga : Cara Menghilangkan index.php di CodeIgniter

4. Menambahkan File CSS

Agar tampilan file view sebelumnya terlihat lebih menarik, perlu ditambahkan CSS untuk form Anda. 

Tapi, pertama-tama buatlah folder CSS dan images di dalam folder public terlebih dulu. Folder CSS akan digunakan untuk menyimpan file CSS, sedangkan folder images sebagai tempat untuk menyimpan gambar yang akan digunakan pada web.

Menambahkan file css dan file gambar

Pada project kali ini, kami menambahkan file CSS dengan nama style.css. Kemudian, salinlah kode berikut pada file file CSS Anda :

* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  font-family: "Quicksand", sans-serif;
}

body {
  height: 100vh;
  width: 100%;
}

.container {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 20px 100px;
}

.container:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: url("/images/bg1.jpg") no-repeat center;
  background-size: cover;
  filter: blur(30px);
  z-index: -1;
}

.contact-box {
  max-width: 850px;
  display: grid;
  grid-template-columns: 250px 600px;
  justify-content: center;
  align-items: center;
  text-align: center;
  background-color: #fff;
  box-shadow: 0px 0px 19px 5px rgba(0, 0, 0, 0.19);
}

.left {
  background: url("/images/bg1.jpg") no-repeat center;
  background-size: cover;
  height: 100%;
}

.right {
  padding: 25px 40px;
}

h2 {
  position: relative;
  padding: 0 0 10px;
  margin-bottom: 20px;
}

h2:after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  height: 4px;
  width: 50px;
  border-radius: 2px;
  background-color: #2ecc71;
}

.field {
  width: 100%;
  border: 2px solid rgba(0, 0, 0, 0);
  outline: none;
  background-color: rgba(230, 230, 230, 0.6);
  padding: 0.5rem 1rem;
  font-size: 1.1rem;
  margin-bottom: 22px;
  transition: 0.3s;
}

.field:hover {
  background-color: rgba(0, 0, 0, 0.1);
}

textarea {
  min-height: 150px;
}

.btn {
  width: 100%;
  padding: 0.5rem 1rem;
  background-color: #2ecc71;
  color: #fff;
  font-size: 1.1rem;
  border: none;
  outline: none;
  cursor: pointer;
  transition: 0.3s;
}

.btn:hover {
  background-color: #27ae60;
}

.field:focus {
  border: 2px solid rgba(30, 85, 250, 0.47);
  background-color: #fff;
}

.alert-success {
  padding: 20px;
  background-color: #5cb85c;
  color: white;
  margin-bottom: 15px;
  opacity: 0.5;
  border-radius: 5px;
}

.alert-danger {
  padding: 20px;
  background-color: #df4759;
  color: white;
  margin-bottom: 15px;
  opacity: 0.5;
  border-radius: 5px;
}

@media screen and (max-width: 880px) {
  .contact-box {
    grid-template-columns: 1fr;
  }

  .left {
    height: 200px;
  }
}

Jangan lupa untuk mengganti nama gambar sesuai dengan gambar yang Anda gunakan.

Baca juga: Mengenal File Default .htaccess di CodeIgniter dan Cara Membuatnya

5. Membuat Controller

Membuat file controller merupakan langkah terpenting dalam tutorial CodeIgniter PHPMailer. File ini akan berisi kode yang digunakan untuk mengirim email. 

Buatlah file dengan nama Email.php pada direktori App/Controllers. Lalu, salinlah kode berikut ini pada file controller Anda :

<?php

namespace App\Controllers;

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

class Email extends BaseController
{
    public function __construct()
    {
        helper(['form']);
    }

    public function index()
    {
        return view('tampilan_form_sendmail');
    }

    public function sendmail()
    {
        $to                 = $this->request->getPost('to');
        $subject            = $this->request->getPost('subject');
        $message            = $this->request->getPost('message');

        $mail = new PHPMailer(true);

        try {
            $mail->SMTPDebug = SMTP::DEBUG_SERVER;
            $mail->isSMTP();
            $mail->Host       = 'smtp.googlemail.com';
            $mail->SMTPAuth   = true;
            $mail->Username   = 'alamatemailanda@gmail.com'; // ubah dengan alamat email Anda
            $mail->Password   = 'passAnda'; // ubah dengan password email Anda
            $mail->SMTPSecure = 'ssl';
            $mail->Port       = 465;

            $mail->setFrom('alamatemailanda@gmail.com', 'Niagahoster Tutorial'); // ubah dengan alamat email Anda
            $mail->addAddress($to);
            $mail->addReplyTo('alamatemailanda@gmail.com', 'Niagahoster Tutorial'); // ubah dengan alamat email Anda

            // Isi Email
            $mail->isHTML(true);
            $mail->Subject = $subject;
            $mail->Body    = $message;

            $mail->send();

		 // Pesan Berhasil Kirim Email/Pesan Error

            session()->setFlashdata('success', 'Selamat, email berhasil terkirim!');
            return redirect()->to('/email');
        } catch (Exception $e) {
            session()->setFlashdata('error', "Gagal mengirim email. Error: " . $mail->ErrorInfo);
            return redirect()->to('/email');
        }
    }
}

Fungsi sendmail() akan berjalan ketika tombol Send di klik oleh user. Fungsi tersebut berisi kode untuk request data yang di input user pada form, pengaturan PHPMailer serta pesan notifikasi success/error.

Jangan lupa, ubah alamat dan password email sesuai dengan Gmail yang akan Anda gunakan untuk mengirim pesan. 

Selain menggunakan Gmail, PHPMailer juga bisa mengirim email menggunakan email domain sendiri dengan konfigurasi SMTP hosting. 

Anda hanya perlu mengubah file controller pada baris kode host dengan mail.namadomain.com, email dengan email@namadomain.com dan password yang digunakan email domain Anda. Namun, tentu saja Anda harus berlangganan layanan hosting dulu jika memilih opsi ini.

Baca Juga: Cara Install Codeigniter di Hosting

6. Testing Mengirim Email

Nah, sekarang waktunya untuk melakukan testing pengiriman email. Caranya, jalankan dulu perintah berikut ini pada terminal Anda :

php spark serve
Menjalankan codeigniter

Selanjutnya, buka web browser Anda, lalu akses url localhost:8080/namacontroller.

Jika Anda menggunakan nama controller yang sama dengan artikel ini, maka Anda dapat mengakses form kirim email dengan url localhost:8080/email.

Nantinya, form Anda akan terlihat seperti ini :

Form mengirim email dengan codeigniter phpmailer

Cobalah untuk mengisi form tersebut dengan email tujuan yang aktif, agar keberhasilannya dapat di cek langsung di email penerima. 

Jika Anda mendapatkan pesan seperti ini, berarti email Anda sudah berhasil terkirim :

Notifikasi keberhasilan email terkirim

Masih belum yakin? Kalau begitu langsung saja cek pada email penerima yang Anda masukkan pada form tadi.

Cek email masuk di email penerima

Bagaimana, sudah ada email masuk kan? Kalau belum ada, coba cek ulang pengaturan akun Gmail Anda. Pastikan Less secure app access sudah diaktifkan, lalu cobalah untuk menonaktifkan 2-step-verification.

Jika pengaturan akun Gmail sudah benar, pastikan juga file controller Anda sudah sesuai. Cek kembali fungsi sendmail() pada baris kode username, password dan port

Baca Juga: Membuat REST API CodeIgniter

Kesimpulan

Anda baru saja belajar tentang CodeIgniter PHPMailer. Jadi, Anda sudah tahu cara mengirim email menggunakan library PHPMailer di project CodeIgniter.

Pada tutorial CodeIgniter PHPMailer di atas, kami menggunakan contoh pengiriman email menggunakan SMTP Gmail. Meskipun mudah, cara ini sebenarnya kurang didukung Google dengan alasan keamanan. 

Itulah kenapa menggunakan email yang disediakan layanan hosting bisa menjadi solusi terbaik. Apalagi, konfigurasinya pun tak kalah mudah. 

Nah, agar hasilnya lebih optimal, pastikan layanan hosting yang digunakan juga bisa diandalkan dan fiturnya lengkap, seperti Unlimited Hosting Niagahoster.

Selain ada fitur unlimited POP3 Email yang memudahkan Anda membuat akun email dan mengirim email dalam jumlah banyak, fitur SpamAssasin Mail Protector membantu Anda mencegah masuknya spam ke inbox.

Bagaimana, ingin menggunakan hosting untuk project CodeIgniter Anda?

Nida Regita F SEO Technical Writer at Niagahoster. An aquarius girl who loves music, watching movies and of course writing.

Leave a Reply

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