Send HTML Email dengan Attachment


Pada posting saya terdahulu tentang cara mengirim email dengan form di PHP, kali ini saya akan sharing tentang cara mengirim email dengan attachment yang diambil langsung dari local.
Berikut ini coding lengkapnya.

<?php
$from = "Amir <amir@gmail.com>";
$to = "budi@yahoo.com , cica@hotmail.com";
$subject = "Ini File Excelnya";
$message = "<b>Terlampir file excel</b><br/>Thanks.";
$filename = "Dummy File1.xls";
	
$uid = md5(uniqid(time()));
$header = "From: ".$from."\r\n";
$header .= "Reply-To: ".$from."\r\n";
$header .= "MIME-Version: 1.0\r\n";

if (file_exists($filename))
{ $header .= "Content-Type:multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
  $nmessage = "--".$uid."\r\n";
  $nmessage .= "Content-type:text/html; charset=\"UTF-8\"\r\n";
  $nmessage .= "Content-Transfer-Encoding:quoted-printable\r\n\r\n";
  $nmessage .= $message."\r\n\r\n";
  $nmessage .= "--".$uid."\r\n";
  $content = chunk_split(base64_encode(file_get_contents($filename)));
  $nmessage .= "Content-Type:application/octet-stream; name=\"".$filename."\"\r\n";
  $nmessage .= "Content-Transfer-Encoding:base64\r\n";
  $nmessage .= "Content-Disposition:attachment; filename=\"".$filename."\"\r\n\r\n";
  $nmessage .= $content."\r\n\r\n";
  $nmessage .= "--".$uid."--";
  $message = $nmessage;
} else {
  $header .= "Content-Type:text/html; boundary=\"".$uid."\"\r\n\r\n";
}
	
if (mail($to, $subject, $message, $header)) {
  echo '<p>Mail has been sent! <br />Please check both inbox and spam folder! </p>'; 
} else {
  echo '<p>Mail can not be sent! Please try again later! </p>';
}  

Anda bisa mengirimkan pesan email dengan format HTML pada variable $message.
Panjang pesan bisa lebih dari 1000 karakter, termasuk tag HTML-nya.

Jika tidak ingin mengirimkan file attachment Anda cukup kosongkan variable $filename=”;

Silakan Anda pakai coding ini di aplikasi php Anda. Selamat mencoba dan semoga sukses.

Leave your comment