Pernahkah kamu mendapat email pada saat mendaftar di sebuah website? atau pada saat kamu ingin mengunduh ebook gratis yang ada di sebuah website? atau mungkin email promosi pada saat kamu mengunjungi website e-commerce? Mengirim email memang salah satu fitur yang bermanfaat yang biasa kita jumpai ketika mengunjungi website. Dan untuk memudahkan dalam pembuatan fitur mengirim email ini, CodeIgniter menyediakan email library yang dapat kita gunakan untuk mengirim email dalam aplikasi yang akan kita kembangkan. Nah, di edisi tutorial kali ini, kita akan membahas cara mengirim email menggunakan Email Library CodeIgniter.
Mengirim Email menggunakan Email Library CodeIgniter itu mudah dan kita bisa set preference sesuai dengan kebutuhan kita. Selain itu, terdapat beberapa fitur yang disediakan Email library CodeIgniter, yaitu:
Mengirim email menggunakan library codeigniter ini saya gunakan di salah satu project web yang saya kerjakan untuk membuat fitur verifikasi pendaftaran. Ada kendala ketika uji coba mengirim email di fitur tersebut. Kendalanya itu belum ada mail server yang bisa digunakan. Dan solusi yang saya gunakan adalah menggunakan SMTP GMAIL. Setelah saya coba di server production, solusi ini bisa digunakan.
Nah, di edisi tutorial kali ini, kita akan mencoba salah satu fitur Email Library CodeIgniter, yaitu mengirim email via SMTP GMAIL. Selain untuk mengikat ilmu, tutorial ini dibuat agar saya dan teman-teman bisa sama-sama belajar. Yuk, kita mulai!
Ada beberapa hal yang pelu kita siapkan sebelum mencoba tutorial kirim email codeigniter 3:
Karena kita akan menggunakan SMTP punya Gmail untuk mengirim email, kita harus membuat beberapa perubahan di pengaturan akun Google kita. Ada beberapa tahapan yang harus kita lakukan, yaitu:
Login ke dalam akun Google kita
Setelah itu, masuk ke halaman My Account. Setelah itu pilih menu Security. Pada halaman ini terdapat panel Signing in to Google
yang memiliki dua pilihan yaitu Password dan 2 Step Verification. Di sini kita harus aktifkan 2-Step Verification untuk mendapatkan App Password yang nanti akan kita gunakan untuk mengirim email.
klik 2 Step Verification untuk mengaktifkan fitur ini. Lalu ikuti langkah-langkahnya dimulai dari klik Get Started, setelah itu kita akan diminta memasukan password untuk melanjutkan. Pada halaman berikutnya kita akan diminta memasukan nomer telepon hp yang masih aktif. Kita coba masukan nomer hp, setelah itu kita pilih sms atau telepon untuk menerima kode pin dari google, di sini saya coba pilih sms dan langsung dapat sms berisi kode pin. Setelah kita dapat sms berisi kode pin, kita coba konfirmasi bahwa nomer masih aktif dengan memasukan kode PIN yang dikirimkan google melalui sms ataupun telepon.
Setelah konfirmasi nomer hp berhasil, selanjutnya aktifkan 2 Step Verification dengan klik link AKTIFKAN.
Sekarang kita kembali lagi ke halaman pengaturan Security. Sekarang kita bisa lihat ada opsi baru di bagian Signing in to Google
, yaitu App password
.
Kita coba klik App password
, dan selanjutnya kita akan diminta untuk memasukan password gmail untuk melanjutkan ke halaman App passwords. Karena kita baru buat, kita bisa lihat di halaman App password kita masih kosong.
Sekarang kita coba generate password baru untuk project kirim email codeigniter 3. Di bagian Select app, kita pilih Other (custome name), lalu kita coba isi dengan value Tutorial Kirim Email qadrLabs
. Setelah itu klik tombol Generate
untuk memulai proses generate password yang baru.
Your app password for your device
xxxjxxkxxlnxxnn
Passwordnya kita catat dulu karena kalau di close nanti password hasil generatenya di-hidden.
Nah, password yang bisa kita gunakan untuk projek kirim email sudah kita dapatkan, sekarang kita sudah bisa pakai Gmail SMTP untuk mengirim email dari aplikasi CodeIgniter kita.
Kita akan membuat sebuah controller dengan nama class Email
dengan method untuk mengirim email, yaitu send()
. Sekarang buka teks editor kesayanganmu, lalu ketik kode di bawah ini ya:
<?php
defined('BASEPATH') or exit('No direct script access allowed');
class Email extends CI_Controller
{
public function send()
{
// set konfigurasi email library
$config = array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => '[email protected]',
'smtp_pass' => 'app_password_hasil_generate',
'mailtype' => 'html',
'charset' => 'iso-8859-1'
);
// load library email
$this->load->library('email', $config);
// set email yang akan dikirim
$this->email->set_newline("\r\n");
$this->email->from('[email protected]', 'Adminnya qadrLabs');
$this->email->to('[email protected]');
$this->email->subject('Percobaan email');
$this->email->message('Halo Kak! Ini adalah email percobaan untuk Tutorial CodeIgniter: Mengirim Email via Gmail SMTP menggunakan Email Library CodeIgniter @ qadrlabs.com');
// proses kirim email
if (!$this->email->send()) {
// tampilkan error, ketika gagal kirim email
show_error($this->email->print_debugger());
} else {
// tampilkan keterangan sukses kirim email
echo 'Success to send email';
}
}
}
Kalau sudah, jangan lupa save file dengan nama Email.php
di directori ci3/application/controllers
.
Pada method send()
, kita bisa lihat di baris kode untuk konfigurasi. Pada bagian ini kita isi smtp user dengan akun email kita dan smtp password kita isi dengan password hasil generate yang sebelumnya kita dapat di step 1.
Pada bagian selanjutnya, di bagian set email, kita isi dengan email from, email tujuan, subjek dan isi email. Lalu selanjutnya kita kirim email menggunakan method send()
dari library email codeigniter 3. Ketika proses kirim email berhasil, output di browser akan menampilkan keterangan berhasil kirim email. Dan sebaliknya apabila gagal, di browser akan menampilkan keterangan error dari debugger library email.
Yuk, sekarang kita coba run project kita. Buka browser lalu buka url http://localhost/ci3/index.php/email/send
. Kalau berhasil kirim email, akan tampil pemberitahuan 'Success to send email'.
Karena email yang kita gunakan sebagai alamat tujuan adalah email kita sendiri, yuk sekarang coba kita buka gmail untuk mengecek apakah emailnya terkirim atau enggak. Tadaaa! ternyata email berhasil terkirim dan sudah masuk ke inbox gmail! :D
Gimana mudah bukan? Mengirim email memang salah satu fitur yang bermanfaat dalam aplikasi web yang kita kembangkan. Dan Email Library CodeIgniter dapat kita manfaatkan untuk membuat fitur mengirim email. Selain fitur email library yang sudah kita coba, terdapat fitur lain yang bisa kamu eksplore dan kembangkan untuk aplikasimu lho!
Oh iya, kamu juga bisa coba mengembangkan aplikasi di edisi tutorial Membuat Fitur Forgot Password Pada CodeIgniter untuk mengirim email berisi link untuk reset password.
Selamat mencoba. semoga belajarnya menyenangkan! Happy Coding! ^^
Web Official CodeIgniter @ https://codeigniter.com Email Library CodeIgniter @ https://www.codeigniter.com/user_guide/libraries/email.html
Ada beberapa pertanyaan yang sering ditanyakan mengenai tutorial ini:
Q: Apakah cara mengirim email ini sudah digunakan dalam project sebenarnya?
A: Ya, cara mengirim email ini sudah saya gunakan di beberapa project web saya (sebagai solusi alternatif karena belum ada mail server). Dan kebetulan server yang digunakan itu dedicated server, bukan shared hosting.
Q: kalau dilocal berhasil, tapi klo udah dihosting gagal, apa ga berlaku kalau dihosting ya?
A: Dulu sempat coba testing di shared hosting, ada yang berhasil dan ada juga yang enggak. Kemungkinan portnya ditutup, IPnya diblockir atau malah difilter sama firewall. Sebagai alternatif kirim email bisa pakai layanan smtp seperti mailgun, sendgrid, dll atau bisa juga pakai smtp penyedia hostingan.
Q: ada error seperti ini php Message: fsockopen(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
A: Sebelum migrasi ke linux, sempat coba di windows dan ada error seperti itu. setelah ditelusuri, penyebabnya itu karena diblok sama antivirus. Jadi solusinya itu masukan whitelist localhost di settingan antivirusnya. atau bisa juga disable antivirusnya (ini kurang saya rekomendasikan. referensi tentang error ini bisa baca di sini
© 2024 qadrLabs . All rights reserved. 000515268