Bagaimana cara mengirim email dengan PHP menggunakan file HTML ?

Secara konsep sangat sederhana :

  • Memanggil file html dengan fungsi file_get_contents() di php
  • Isi pesan yang ingin dikirim dirubah dengan menggunakan prefix variable mis. %message%, lalu kita replace variabel tersebut dengan isi pesan yang akan kita kirim dengan fungsi str_replace();
  • Set mail header dengan Content-Type: text/html agar sistem email penerima dapat mengetahui bahwa email yang dikirim formatnya html.
  • Lalu kita kirim dengan menggunakan fungsi mail()

Anda bisa mendownload source code ini di tombol download paling bawah.

Baca Juga: Mengirim Email di Codeigniter

Struktur HTML

Mari buat struktur htmlnya, simpan file html dengan nama template_email.html .

<!-- Simpan file dengan nama mis. template_email.html -->
<!DOCTYPE HTML>
<html>
  <head>
    <title>Contoh Email dengan HTML</title>
  <head>
  <body>

    <ul>
       <li>Nama : %nama% </li>
       <li>Website : %website% </li>
       <li>Pesan : %pesan% </li> 
     </ul>    
 
  </body>
</html>

Oke disini kita telah membuat file html yang terdapat prefix % berisi nama, alamat website, dan pesan. Lalu, bagaimana cara memanggil file tersebut dengan PHP.

Buat File PHP

Buat file php simpan dengan nama apa saja, misal kirimemail.php

$pengirim = "emailpengirim@mail.com";
$penerima = "alamatpenerima@mail.com";

$subjek = "Testing Email dengan HTML";

// Set Header PHP
$headers = 'MIME-Version: 1.0' . "\r\n";

$lf= strtoupper(substr(PHP_OS, 0, 3)) == 'WIN'?"\r\n":"\n";

$headers .= "From: $pengirim" .$lf;
$headers .= "Date: ".date('r') .$lf; 
$headers .= "X-Mailer: PHP" .$lf; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";


// Ambil file template dengan file_get_contents
$pesan = file_get_contents(__DIR__.'/template_email.html');

$pesan = str_replace("%nama%", 'Si Jon Doe', $pesan);
$pesan = str_replace("%website%", 'www.kodingspace.com', $pesan);
$pesan = str_replace("%pesan%", 'Pesan ini dikirim dengan HTML Tag', $pesan);

// Kirim Email 
if(mail($penerima,$subjek, $pesan, $headers)){
echo "Email Terkirim";
}else{
echo "Email Gagal Terkirim";
}

Apabila pengiriman email gagal anda bisa mencoba

Cara Mengirim Email dengan gMail di Localhost

Oke hanya itu saja, bila email sukses terkirim maka akan tampil seperti contoh dibawah. Bila ada pertanyaan silahkan isi kolom komentar.

Mengirim email dengan PHP menggunakan file HTML