Tutorial Kirim Email dengan SMTP Gmail CodeIgniter

Kategori: CodeIgniter

Dalam membuat sebuah program aplikasi PHP framework CodeIgniter, suatu saat kita pasti akan dihadapkan dengan fitur kirim email.

Fitur ini digunakan untuk berkomunikasi antara user satu dengan yang lainnya maupun antara user dengan sistem aplikasi itu sendiri.

Untuk membuat fitur pengiriman email pada CodeIgniter kita bisa memanfaatkan SMTP Gmail.

Baca juga tutorial Membuat Base URL Dinamis CodeIgniter

Mengapa harus menggunakan SMTP Gmail, bukankah PHP sendiri sudah memiliki fungsi bawaan mail() yang bisa digunakan pada CodeIgniter?

Sebenarnya kita 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 bisa mengirimkan email.
  • Setiap layanan hosting pasti ada batas jumlah pengiriman email setiap jamnya.
  • Proses pengiriman email dengan fungsi mail() lambat.
  • Tidak bisa mengirimkan email dari localhost.
  • 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 terkirim ke penerima.

Saya rasa sudah cukup basa basinya, sekarang lanjut ke tutorial mengirim email dengan memanfaatkan SMTP Gmail.

Tahap 1: Turn On Less Secure Apps

Sebelum kita menulis kode untuk mengirim email dengan SMTP Gmail pada CodeIgniter, langkah awal yang harus kita lakukan adalah memberikan akses akun Google kita pada aplikasi yang pihak ketiga.

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:

  • Silakan login ke akun google Anda dengan mengunjungi https://myaccount.google.com/.
  • Kemudian pilih Login & keamanan.
  • Lalu pilih Aplikasi yang dapat mengakses akun.
  • Ubah status "Izinkan aplikasi yang kurang aman" menjadi "AKTIF".

Kita sudah berhasil mengaktifkan akses aplikasi yang kurang aman. Sekarang lanjut ke tahap 2.

Tahap 2: Pembuatan Method Kirim Email

Pada tahap ini kita akan membuat sebuah method baru untuk mengirimkan email menggunakan SMTP Gmail.

Berikut tata caranya:

  • Silakan download CodeIgniter versi 3 di sini.
  • Ekstrak file CodeIgniter yang sudah kita download tadi dan rename menjadi "mail"┬álalu copy paste ke dalam folder "htdocs".
  • Kemudian edit file controller Welcome.php dan ganti dengan kode di bawah ini.

  • Sesuaikan konfigurasi yang ada seperti alamat email Gmail, password, email pengirim, email penerima dan lain sebagainya sesuai kebutuhan.
  • Simpan kode yang sudah diedit.

Untuk menguji apakah kode yang kita buat dapat mengirimkan email atau tidak, silakan tulis "http://localhost/mail/index.php/welcome/kirim_email" pada address bar browser dan tekan enter.

Jika muncul pesan "Sukses! email berhasil dikirim." dan pada email tujuan ada email baru yang masuk sesuai dengan email pengirim, maka kita sudah berhasil mengirimkan email dari localhost menggunakan SMTP Gmail.

Untuk mengirimkan email dari localhost menggunakan SMTP Gmail, pastikan Anda memiliki koneksi internet, tanpa koneksi internet email tidak akan terkirim dan akan muncul error.

Tutorial di atas hanyalah contoh dasar bagaimana cara mengirim email pada CodeIgniter menggunakan SMTP Gmail, kita dapat mengembangkannya menjadi lebih kompleks seperti, multiple recipient, multiple file attachment dan kustom style email.

Beberapa Error dan Solusinya

Tutorial mengirim email ini sudah saya coba dan dapat berfungsi dengan baik pada PHP versi 5.5 serta PHP versi 7. Namun untuk PHP versi 5.6 saya belum mencobanya, tetapi ada yang sudah mencoba dan melaporkan kalau terjadi error.

Untuk mengatasi error pada PHP versi 5.6, silakan edit file sendmail.ini yang terdapat dalam folder xampp->sendmail (untuk pengguna Windows).

Kemudian paga bagian auth_username= dan auth_password= diisi dengan akun gmail dan passwordnya sama seperti pada smtp_user dan smtp_pass yang ada pada kode di atas.

Hal lain yang juga perlu diperhatikan agar tidak terjadi error dalam mengirim email, pastikan kita sudah mengaktifkan ekstensi php_openssl.dll pada php.ini. Jika belum, silakan aktifkan terebih dahulu.

Caranya, silakan edit file php.ini lalu hilangkan tanda "titik koma".

;extension=php_openssl.dll

Menjadi

extension=php_openssl.dll

Lalu restart Apache server.

Pastikan juga tidak ada antivirus, firewall atau aplikasi lain yang memblokir port 465.

Itulah beberapa error yang sudah saya ketahui. Jika Anda menemukan error lainnya, silakan tulis pada kolom komentar disertai dengan pesan error. Atau bisa juga dengan menghubungi saya secara langsung.

Demikianlah tutorial yang dapat saya sampaikan, nantikan tutorial lainnya seputar pemrogramman web hanya di MasRud.com.

Simak juga Tutorial Autocomplete dengan PHP dan MySQLi

Gambar utama: http://yukiyagami.blogspot.co.id

UPDATE: Karena saat ini untuk menggunakan SMTP Gmail tidak semudah dulu, silakan gunakan SendGrid sebagai alternatif. Tutorialnya akan saya buatkan nanti, jadi stay tune.
Diposting pada Jan 06, 2018

Komentar