Cara Mengirim Email Menggunakan PHPMailer

By Rizky Kurniawan - July 30, 2022 ~4 mins read

Halo, selamat datang di Ruang Developer Blog. Bagaimana kabarnya hari ini? semoga tetap semangat belajar kodingnya ya. Pada postingan kali ini kita akan belajar bagaimana cara mengirim email menggunakan PHP.

Kemampuan aplikasi untuk mengirim email merupakan salah satu hal yang penting. Email ini biasanya berupa notifikasi pemberitahuan yang dikirimkan kepada pengguna seperti pemberitahuan keamanan, permintaan reset password, atau pemberitahuan-pemberitahuan lainnya yang bersifat transactional.

PHPMailer

PHPMailer adalah sebuah library PHP untuk mengirim email. PHPMailer menyediakan beberapa metode pengiriman email, salah satunya adalah SMTP (Simple Mail Transfer Protocol).

Untuk menggunakan PHPMailer, kamu dapat langsung mendownloadnya dari repository github atau install menggunakan composer jika aplikasi kamu menggunakan composer. Composer adalah sebuah package manager PHP yang memudahkan kamu untuk mengelola library dalam project kamu.

Menyiapkan SMTP Server

Untuk mengirim email menggunakan SMTP, kamu memerlukan SMTP server. Server ini yang akan mengirimkan email yang kamu tulis ke tujuan yang kamu tentukan. Ada sebuah tool SMTP untuk keperluan development yaitu Mailtrap. Kamu bisa membuat akun di sana dan mendapatkan informasi SMTP untuk tutorial kita kali ini.

Jika kamu memiliki SMTP server sendiri, kamu bisa menggunakannya. Kamu juga bisa menggunakan SMTP dari Google Mail, namun sepengalaman saya banyak mengalami masalah saat menggunakan SMTP dari Google Mail.

Mengirim Email Menggunakan PHPMailer

Lanjut ke bagian koding, silahkan buat folder project PHP baru dalam folder root localhost (htdocs, www, atau sejenisnya).

Pada tutorial ini kita akan menginstall PHPMailer dengan cara mendownloadnya langsung. Kamu bisa download PHPMailer pada link berikut:

https://github.com/PHPMailer/PHPMailer/archive/refs/tags/v6.6.3.zip

Setelah selesai mendownload, ekstrak isi arsip yang sudah kamu download ke dalam folder project.

Dalam folder project, buat sebuah file send.php. Folder project kamu harusnya terlihat kurang lebih seperti berikut ini:

Folder Project

Dalam file send.php buat kode seperti ini:

<?php

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

require './PHPMailer/src/Exception.php';
require './PHPMailer/src/PHPMailer.php';
require './PHPMailer/src/SMTP.php';

$mail = new PHPMailer(true);

Note: sesuaikan path folder milik kamu jika lokasi folder PHPMailer berbeda.

Di bawahnya, Tambahkan blok try-catch untuk menangkap error dari Exception yang terjadi.

<?php
// kode lainnya...
try {

} catch (Exception $th) {
    echo "PHPMailer Error: {$mail->ErrorInfo}";
}

Dalam blok try tambahkan kode untuk koneksi ke server SMTP.

<?php
// kode lainnya...
try {
    $mail->isSMTP();
    $mail->Host = 'isi host smtp kamu';
    $mail->SMTPAuth = true;
    $mail->Username = 'isi username smtp kamu';
    $mail->Password = 'isi password smtp kamu';
    $mail->Port = 587;
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
} catch (Exception $th) {
    // kode lainnya...
}

Berikutnya, masih dalam blok try, tambahkan kode untuk informasi pengiriman email.

<?php
// kode lainnya...
try {
    // kode lainnya...

    // Atur pengirim email
    $mail->setFrom('[email protected]', 'Pengirim email keren');
    // Atur penerima email
    $mail->addAddress('[email protected]', 'Penerima email keren');
    // Atur reply to
    $mail->addReplyTo('[email protected]', 'Informasi');
    // Atur cc
    $mail->addCC('[email protected]', 'CC Keren');
    // Atur bcc
    $mail->addBCC('[email protected]', 'BCC Keren');
} catch (Exception $th) {
    // kode lainnya...
}

Berikutnya, masih dalam blok try, tambahkan kode untuk subjek, dan body email.

<?php
// kode lainnya...
try {
    // kode lainnya...

    // Isi email
    $mail->isHTML();
    // Atur subjek
    $mail->Subject = 'Coba Mengirim Email';
    // Atur body
    $mail->Body = 'Halo ini adalah email yang dikirim dengan HTML dan <b>Huruf Tebal<b/>';
    // Atur versi text untuk email
    $mail->AltBody = 'Halo ini adalah email yang dikirim dengan plain text';
} catch (Exception $th) {
    // kode lainnya...
}

Terakhir, dalam blok try, tambahkan kode untuk mengirim email kita.

<?php
// kode lainnya...
try {
    // kode lainnya...

    // Kirim email kita
    $mail->send();
    echo 'Email sent...';
} catch (Exception $th) {
    // kode lainnya...
}

Hasil keseluruhan dari file send.php kita akan menjadi seperti ini.

<?php

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

require './PHPMailer/src/Exception.php';
require './PHPMailer/src/PHPMailer.php';
require './PHPMailer/src/SMTP.php';

$mail = new PHPMailer(true);

try {
    $mail->isSMTP();
    $mail->Host = 'isi host smtp kamu';
    $mail->SMTPAuth = true;
    $mail->Username = 'isi username smtp kamu';
    $mail->Password = 'isi password smtp kamu';
    $mail->Port = 587;
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;

    // Atur pengirim email
    $mail->setFrom('[email protected]', 'Pengirim email keren');
    // Atur penerima email
    $mail->addAddress('[email protected]', 'Penerima email keren');
    // Atur reply to
    $mail->addReplyTo('[email protected]', 'Informasi');
    // Atur cc
    $mail->addCC('[email protected]', 'CC Keren');
    // Atur bcc
    $mail->addBCC('[email protected]', 'BCC Keren');

    // Isi email
    $mail->isHTML();
    // Atur subjek
    $mail->Subject = 'Coba Mengirim Email';
    // Atur body
    $mail->Body = 'Halo ini adalah email yang dikirim dengan HTML dan <b>Huruf Tebal<b/>';
    // Atur versi text untuk email
    $mail->AltBody = 'Halo ini adalah email yang dikirim dengan plain text';

    // Kirim email kita
    $mail->send();
    echo 'Email sent...';

} catch (Exception $th) {
    echo "PHPMailer Error: {$mail->ErrorInfo}";
}

Mencoba Mengirim Email

Untuk mencoba mengirim email, pastikan kamu sudah mengaktifkan localhost kamu ya. Setelah itu kamu bisa buka browser dan arahkan ke URL file send.php.

Untuk URL project saya, kurang lebih seperti ini:

http://localhost/send-email-php/send.php

Berikut ini adalah hasil email yang saya kirimkan menggunakan PHPMailer. (Menggunakan SMTP Mailtrap).

Email Sent

Informasi header email sesuai dengan konfigurasi kita pada kode.

Email Sent

Source code untuk tutorial ini dapat kamu lihat di GitHub Ruang Developer

Bagikan:

Ingin Berdiskusi?

Yuk bergabung di Grup Telegram Ruang Developer atau mulai diskusi melalui GitHub. See You!

Dapatkan contoh source code project backend, frontend, atau fullstack untuk kamu amati, tiru, dan modifikasi sesuka hati. Klik untuk melihat detail!
comments powered by Disqus

Berlangganan Gratis

Kamu akan menerima email update dari Ruang Developer

Beri Dukungan

Beri dukungan, dapatkan full source code project web untuk bahan referensi, tiru, dan modifikasi.
Lightbox