Cara Mengirim Email Teks dan HTML dengan PHP

Posted: 21 Feb 2012 12:26         Kategori: PHP & MySQL

Cara Mengirim Email Teks dan HTML dengan PHP

Setiap website perlu memiliki form input online yang merupakan tempat para pengunjung memasukan informasi untuk pemilik website yang ditampung di database dan dikirim langsung ke alamat email pemilik situs. Seperti mendaftar untuk situs kita, pemesanan online, kontak form, survey atau sebaliknya pemilik situs mengirim informasi rutin pada waktu yang ditetapkan, seperti newsletter bulanan.  Untuk memproses masukan from online tersebut dan mengirimnya lewat email kita perlu script php yang dapat menanganinya. Terkadang 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.


Mengirim Email Dalam Bentuk Teks Biasa

Pertama-tama mari kita melihat 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:

<?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";
//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";
?>

Seperti yang kita lihat, tidak begitu sulit untuk mengirim email dengan php. 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 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:

  <?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";
?>

Dalam contoh sebelumnya kita menambahkan satu header tambahan Content-type: multipart/alternatif dan batas string yang menandai area yang berbeda dari email. 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.


Tags: Script Php, Contoh Kode, Php Sendmail, Fungsi Php
feedback
Cek Domain:      
LiveZilla Live Help