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.
Bung Ivan, Saya mau tanya, bagaimana caranya formulir yang kita buat di web, setelah diisi oleh pengunjung, lalu dikirim ke email kita.?
BalasHapusThaaanks .. mantaap
BalasHapussudah saya coba tapi di email kok belum terkirim ya kak..??
BalasHapussaya coba pakek localhost saya koneksi ke internet juga..
mohon pencerahannya..
Berhasil tapi email nya gak masuk, kira2 kurang di mana ya. :D
BalasHapus