Tutorial PHP : Cara Mengirim Email Format Teks dan HTML menggunakan PHP


Hai sahabat setia Belajar Pintar PHP, kita ketahui bahwa hampir setiap website maupun blog memerlukan form input online dimana form input itu digunakan untuk menginput/memasukan informasi atau komentar untuk pemilik website yang ditampung di database dan dikirim langsung ke alamat email pemilik situs. Untuk memproses masukan atau input dari from online tersebut dan mengirimnya lewat email kita perlu script php yang dapat menanganinya. Tapi yang paling penting anda ketahui adalah kadang kala email dapat dalam bentuk teks biasa atau format HTML.
Untuk mengirim email dengan script PHP kita membutuhkan sebuah web server unix/linux sebagai server email dan memiliki otoritas untuk menggunakan Sendmail.
 Disini kita akan membahas dengan cara satu persatu dan anda juga bisa mempraktekkannya secara langsung.
 

Mengirim Email Dalam Bentuk Teks Biasa Atau Non HTML

Hal pertama yang perlu kita lihat atau pikirkan adalah bagaimana cara untuk mengirim pesan email teks biasa. PHP memiliki fungsi mail() untuk mengirim email, yang harus diisi dengan 3 parameter dasar dan 2 parameter opsional. Secara berurutan paremeter-parameternya adalah alamat email tujuan, subjek email, pesan untuk dikirim, header tambahan yang akan disertakan dan parameter tambahan untuk program Sendmail. Fungsi mail() akan mengembalikan nilai True jika pesan berhasil dikirim dan False bila sebaliknya. 

Silahkan lihat pada contoh ( Copy Script ini ) :
 
<?php
//menentukan  email tujuan
$to = 'youraddress@example.com';
//mendefinisikan subyek email
$subject = 'Test email'; 
//mendefinisikan pesan yang akan dikirim. Setiap baris  dipisahkan dengan \ n
$message = "Hello World!\n\nThis is my first mail."; 
//mendefinisikan header yang kita ikutkan. Perhatikan bahwa mereka dipisahkan 
//dengan \r\ n
$headers = "From: webmaster@example.com\r\nReply-To: webmaster@example.com";
$mail_sent = mail( $to, $subject, $message, $headers );
//jika pesan berhasil terkirim cetak "Email Berhasil Dikirim". Jika tidak 
//cetak ""Email Gagal Dikirim"
echo $mail_sent ? "Email Berhasil Dikirim" : "Email Gagal Dikirim";
?>

Berdasarkan kode atau script diatas dapat disimpulkan bahwa untuk mengirim email dengan php tidaklah sulit. kita dapat menambahkan penerima lebih dari satu tambahkan alamat email mereka, dipisahkan koma, pada variabel $to, atau dengan menambahkan header cc: atau bcc: .

Mengirim Email Dengan Format HTML

Langkah selanjutnya untuk email format HTML adalah cara mengirim email dengan format HTML dengan script php. Namun, beberapa aplikasi mail clients tidak dapat membaca email dengan format HTML. Oleh karena itu yang terbaik adalah mengirim email HTML menggunakan konstruksi multi, dimana satu bagian berisi versi teks biasa dari email dan bagian lainnya adalah HTML. Jika pelanggan kita memiliki email HTML dimatikan, mereka masih akan mendapatkan email yang bagus, bahkan jika mereka tidak mendapatkan semua format HTML.
Silahkan lihat pada contoh ( Copy Script ini ) :

<?php
//menentukan  email tujuan
  $to = 'youraddress@example.com';
  //mendefinisikan subyek email
  $subject = 'Test HTML email'; 
  // buat string pembatas. Ini harus unik
  // jadi kita menggunakan algoritma MD5 untuk menghasilkan hash acak 
$random_hash = md5(date('r', time())); 
  //mendefinisikan header yang kita ikutkan. Perhatikan bahwa mereka dipisahkan 
//dengan \r\ n
  $headers = "From: webmaster@example.com\r\nReply-To: webmaster@example.com";
  // menambahkan string pembatas dan  spesifikasi jenis mime
  $headers .= "\r\nContent-Type: multipart/alternative;
boundary=\"PHP-alt-".$random_hash."\""; 
  //mendefinisikan  body pesan.ob_start(); //Aktifkan output buffering

  ?>
--PHP-alt-  
Content-Type: text/plain; charset="iso-8859-1" 
Content-Transfer-Encoding: 7bit

  Hallo Disana !!!
  Ini adalah teks pesan email sederhana.

--PHP-alt-  
Content-Type: text/html; charset="iso-8859-1" 
Content-Transfer-Encoding: 7bit

<h2>Hello World!</h2>
<p>This is something with <b>HTML</b> formatting.</p>

  
--PHP-alt---
//copy isi buffer saat ini ke dalam variabel $ pesan dan menghapus 
//output buffer saat ini
$message = ob_get_clean();
//mengirim email 
$mail_sent = mail( $to, $subject, $message, $headers );
//jika pesan berhasil terkirim cetak "Email Berhasil Dikirim". Jika tidak 
//cetak ""Email Gagal Dikirim"
echo $mail_sent ? "Email Berhasil Dikirim" : "Email Gagal Dikirim";
?>


NB:
Perhatikan bahwa jenis isi pesan itu sendiri dikirim sebagai header mail, sementara content types dari setiap bagian pesan tertanam dalam pesan itu sendiri. Dengan cara ini, mail clients dapat memutuskan bagian mana dari pesan yang dapat ditampilkan.

Selamat Mencoba, Jika anda menemukan kesulitan, silahkan meninggalkan komentar dibawah ini.

4 Komentar

  1. Bung Ivan, Saya mau tanya, bagaimana caranya formulir yang kita buat di web, setelah diisi oleh pengunjung, lalu dikirim ke email kita.?

    BalasHapus
  2. sudah saya coba tapi di email kok belum terkirim ya kak..??

    saya coba pakek localhost saya koneksi ke internet juga..

    mohon pencerahannya..

    BalasHapus
  3. Berhasil tapi email nya gak masuk, kira2 kurang di mana ya. :D

    BalasHapus
Lebih baru Lebih lama