Afid Arifin – Kirim Email dengan SMTP PHPMailer, mengirim email dengan PHP di localhost biasanya kita akan menggunakan fungsi mail() bawaan dari PHP. Akan tetapi, fungsi tersebut memiliki kekurangan yakni, email yang terkirim akan masuk ke folder spam.

Oleh karena itu, kita perlu bantuan dari library PHP untuk mengirim email, agar email yang kita kirim ke pengguna tidak masuk ke folder spam. Sehingga, dengan demikian tingkat email dibaca oleh pengguna akan semakin tinggi.
Apa Itu PHPMailer?
PHPMailer adalah sebuah library PHP yang memungkinkan untuk mengirim email melalui server PHP menggunakan protokol SMTP (Simple Mail Transfer Protocol). Ini berguna jika kita tidak dapat mengirim email secara langsung dari server PHP menggunakan fungsi mail() bawaan PHP.
Oleh karena itu, kirim email dengan SMTP PHPMailer tidak dapat berjalan sendiri dan masih memerlukan bantuan dari teknologi SMTP agar kita dapat mengirim email dalam format HTML, menyertakan lampiran file, atau mengirim email melalui server SMTP yang berbeda.
Apa Itu SMTP?
SMTP (Simple Mail Transfer Protocol) adalah protokol yang digunakan untuk mentransfer email dari server ke server. Ketika menggunakan aplikasi email seperti Microsoft Outlook atau Mozilla Thunderbird untuk mengirim email, aplikasi tersebut akan mengirim email ke server SMTP yang ditetapkan.
Kemudian akan mengirim email tersebut ke server email tujuan. Server SMTP akan menggunakan protokol SMTP untuk mengirim email ke server email tujuan, yang kemudian akan menyampaikan email tersebut ke aplikasi email penerima.
SMTP juga bisa digunakan untuk mengirim email dari server ke server menggunakan skrip PHP atau bahasa pemrograman lainnya.
Cara Kirim Email dengan SMTP PHPMailer
Berikut ini adalah langkah-langkah cara kirim email dengan SMTP PHPMailer sebagai pengganti fungsi mail() bawaan PHP.
Langkah #1: Menentukan Server SMTP
Sebelum menggunakan PHPMailer, terlebih dahulu kalian menentukan server SMTP mana yang akan kalian gunakan di PHPMailer. Banyak tersedia layanan SMTP server mail gratis maupun berbayar yang dapat digunakan.
Rekomendasi layanan SMTP server mail gratis yang bisa kalian coba adalah Mailjet, SendGrid, Mailgun, Postals, SMTP2Go, hingga ProtonMail. Dalam tutorial ini, saya merekomendasikan kalian untuk menggunakan SMTP dari Mailjet.
Langkah #2: Download PHPMailer
Selanjutnya, silahkan kalian download terlebih dahulu library PHPMailer-nya di sini. Kemudian, buat folder baru bernama PHPMailer dan ekstrak file ke dalamnya.
Langkah #3: Membuat Class Mailer
Setelah PHPMailer diekstrak, berikutnya silahkan buat file baru dengan nama Mailer.php dan copy pastken class PHP yang telah aya buat berikut.
<?php ini_set('display_errors', 0); ob_start(); use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; require_once 'PHPMailer/src/PHPMailer.php'; require_once 'PHPMailer/src/Exception.php'; require_once 'PHPMailer/src/OAuth.php'; require_once 'PHPMailer/src/POP3.php'; require_once 'PHPMailer/src/SMTP.php'; class Mailer { private $mail; public function __construct() { $this->mail = new PHPMailer(true); } public function setup(...$datas) { $this->mail->SMTPDebug = $datas[0]['DEBUG']; $this->mail->isSMTP(); $this->mail->Host = $datas[0]['HOST']; $this->mail->SMTPAuth = $datas[0]['AUTH']; $this->mail->Username = $datas[0]['USER']; $this->mail->Password = $datas[0]['PASS']; $this->mail->SMTPSecure = $datas[0]['SECURE']; $this->mail->Port = $datas[0]['PORT']; $this->mail->setFrom($datas[0]['FROM'], $datas[1]['SENDER']); $this->mail->addAddress($datas[1]['TO'], $datas[1]['NAME']); if(!empty($datas[1]['ATTACH'])) { $this->mail->addAttachment($datas[1]['ATTACH']); } $this->mail->isHTML(true); $this->mail->Subject = $datas[1]['SUBJECT']; $this->mail->Body = $datas[1]['MESSAGE']; $this->mail->AltBody = $datas[1]['MESSAGE']; } public function send_now() { if($this->mail->send()) { return true; } else { return false; } } } ?>
Class PHP di atas memiliki beberapa method yang dapat digunakan yang diantaranya setup() berfungsi untuk menangkap konfigurasi SMTP. Kemudian ada method send_now() untuk proses pengiriman.
Langkah #4: Menguji Pengiriman Email
Setelah Class Mailer telah dibuat, selanjutnya kita melakukan pengujian kirim email dengan SMTP PHPMailer. Silahkan buat file baru lagi dengan nama Kirim.php kemudian copy pastekan kode PHP berikut.
<?php ini_set('display_errors', 0); ob_start(); require_once 'Mailer.php'; $mailer = new Mailer(); $mailer->setup([ 'DEBUG' => false, 'HOST' => '', 'USER' => '', 'PASS' => '', 'SECURE' => '', 'PORT' => 587, 'FROM' => '', 'AUTH' => true, ], [ 'TO' => '', 'SUBJECT' => '', 'MESSAGE' => '', 'SENDER' => '', 'NAME' => '', 'ATTACH' => '', ]); if($mailer->send_now()) { echo 'Email terkirim!'; } else { echo 'Email gagal terkirim!'; } ?>
Sebelum menguji pengiriman, silahkan isi konfigurasi SMTP yang kalian gunakan terlebih dahulu. Simak penjelasan berikut ini.
- DEBUG, diisi dengan true atau false jika ingin melakukan debug.
- HOST, diisi dengan nama host SMTP.
- USER, diisi dengan username SMTP.
- PASS, diisi dengan password SMTP.
- SECURE, diisi dengan jenis koneksi SMTP.
- PORT, diisi dengan port SMTP. Pastikan sesuaikan dengan jenis koneksinya.
- FROM, diisi dengan asal pengirim email.
- AUTH, diisi dengan true atau false untuk keperluan autentikasi SMTP.
- TO, diisi dengan email tujuan pengiriman.
- SUBJECT, diisi dengan subjek email.
- MESSAGE, diisi dengan isi pesan.
- SENDER, diisi dengan nama pengirim.
- NAME, diisi dengan nama pengirim.
- ATTACH, diisi dengan URL lampiran jika ingin disertai dengan lampiran pada email.
Dikarenakan cara kirim email dengan SMTP PHPMailer berbasis internet, pastikan koneksi internet kalian aktif. Selain itu, jika disertai dengan lampiran maka proses pengiriman akan sedikit lebih lama.
Penutup
Kirim email dengan SMTP PHPMailer merupakan pilihan alternatif yang tepat untuk mengatasi email PHP masuk folder spam yang disebabkan oleh fungsi mail() bawaan dari PHP. Bagi kalian yang ingin mendownload source code lengkapnya, silahkan download di sini gratis.
Demikian tutorial cara kirim email dengan SMTP PHPMailer, selamat mencoba dan semoga bermanfaat.