Mengirim Email dengan PHPMailer pada Bahasa Pemrograman PHP

LATAR BELAKANG

Simple Mail Transfer Protocol (SMTP) adalah sebuah protokol pada jaringan internet yang digunakan untuk berkomunikasi dengan server guna mengirimkan email dari lokal email ke server, sebelum akhirnya dikirimkan ke server email penerima. Proses ini dikontrol dengan Mail Transfer Agent yang ada dalam server email. SMTP secara default menggunakan port 25 tanpa enkripsi namun juga dapat menggunakan port lain yaitu 465 untuk SSL dan 587 untuk TLS.

PEMBAHASAN

Saat ini dependencies untuk mengirim email dengan SMTP dengan bahasa PHP sudah banyak bermunculan salah satunya adalah PHPMailer. PHPMailer membuat kode mengirim email lebih simpel, email pun dapat dikustomisasi. PHPMailer dapat diunduh melalui laman GitHub namun sangat disarankan untuk mengunduhnya melalui composer.

Depedencies secara umum dapat dikatakan sebagai library tambahan yang dapat digunakan untuk mempermudah suatu proses koding. Pada artikel ini depedencies yang akan digunakan adalah PHPMailer sebuah depedencies yang mempermudah untuk mengirim email melalui SMTP. Jika membuat sendiri dari 0 tentu butuh waktu yang panjang dan kode yang cukup banyak dengan PHPMailer hanya cukup kode beberapa baris saja kirim email bisa dilakukan.

Untuk bisa mendapatkan PHPMailer, diperlukan perantara yaitu Composer. Berikut link download composer jika belum ada. Jika tertarik untuk integrasi compsoer dengan Visual Studio Code, penulis sudah membahasnya di sini.

Cara instal PHPMailer

  1. Buka Terminal
    Buka Terminal/CMD di folder projek web yang akan menggunakan PHPMailer.
  2. Jalankan Perintah
    composer require phpmailer/phpmailer
  3. Tunggu Proses
    Hasil Composer

Jika menggunakan Gmail sebagai email SMTP maka perlu menggunakan App Password. Cara membuat App Password

Cara Menggunakan PHPMailer

  1. Import PHPMailer
    Pada file .php import PHPMailer dan autoload.
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\OAuth;
    require 'vendor/autoload.php';
  2. Tentukan Format Email
    Tentukan format email yang akan dikirim seperti apa, contoh yang dibuat adalah seperti email registrasi sebagai berikut :
    Contoh Format Email

    Keterangan :
    1. Judul / Subjek dari Email
    2. Alias / Nama lain pengirim yang dimunculkan di email
    3. Alamat Email pengirim
    4. Body / Isi dari pesan, ditulis dengan HTML
    5. Nama pemilik email yang dituju
    6. Link / Tautan, ketika membuat email registrasi maka link ini adalah API untuk autentikasi.
  3. Contoh Implementasi Kode
    <?php
         use PHPMailer\PHPMailer\PHPMailer;
         use PHPMailer\PHPMailer\OAuth;
         require 'vendor/autoload.php';
    
         $kepada = 'email tujuan';
         $nama = 'nama orang yang dituju';
         $judul_email = 'Kirim Email dengan Gmail API';
         $link = 'tataadin.blogspot.com';
                    
         $mail = new PHPMailer;
         $mail->isSMTP();
         $mail->SMTPDebug = 2;
         $mail->Host = 'smtp.gmail.com';
         $mail->SMTPSecure = 'tls'; 
         $mail->Port = 587;
         $mail->SMTPAuth = true;
         $mail->Username= 'email yang digunakan/ pengirim';
         $mail->Password= 'password email';
         $mail->setFrom('email yang digunakan','alias / nama pengirim');
         $mail->addAddress($kepada);
         $mail->Subject = $judul_email;
         $mail->CharSet = 'utf-8';
         $mail->isHTML(true);   
         $mail->Body = '<b>Terimakasih '.$nama.', Telah Mengirim Email</b>
                    <br/>Buka Blog Tata Adi N <a href='.$link.'>disini</a>';
         if(!$mail->send()) {
              echo "Mailer Error: ".$mail->ErrorInfo;
         }else{
              echo "Kirim Email Berhasil";
         }
    ?>
    Ubah nilai yang perlu diubah, jika masih tidak bisa coba aktifkan fitur LESS SECURE APP pada pengaturan Google Account yang digunakan untuk mengirim email.

KESIMPULAN

Cara mengirim email dengan PHPMailer ini memang mudah namun terdapat kekurangan yaitu aplikasi dianggap kurang aman karena autentikasinya kurang secure terkadang juga dianggap spam, oleh sebab itu lebih baik menggunakan autentikasi API contohnya adalah GmailAPI. Jika mengalami masalah dari penerapan Source Code dan ada pertanyaan dapat diajukan melalui media sosial penulis yang tertera pada Widget Blog ini.


Untuk pengaturan lain bisa dilihat di laman resmi github PHPMailer
PHPMAILER
Contoh SourceCode
Saya seorang programmer dengan fokus developer Web dan Android.