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.
No comments:
Post a Comment