Home Tekno Cara Kirim Email di PHP Dengan Attachment

Cara Kirim Email di PHP Dengan Attachment

6 min read
0
0
13

Mungkin kamu sudah tahu cara kirim email di PHP, namun jika harus mengirim dengan attachment agak sedikit tricky. Kali ini kami akan memberitahukan cara kirim email di PHP dengan attachment menggunakan PHP mail.

Pertama buat form HTML dengan field input file seperti dibawah ini, atribut enctype harus menjadi “multipart/form-data,” jadi form-data di-encoded sebagai “multipart/form-data” ketika dikirim ke server.

<form enctype=“multipart/form-data” method=“POST” action=“”>
<label>Your Name <input type=“text” name=“sender_name” /> </label>
<label>Your Email <input type=“email” name=“sender_email” /> </label>
<label>Subject <input type=“text” name=“subject” /> </label>
<label>Message <textarea name=“message”></textarea> </label>
<label>Attachment <input type=“file” name=“my_file” /></label>
<label><input type=“submit” name=“button” value=“Submit” /></label>
</form>

PHP Mail dengan Attachment

Berikut ini adalah kode lengkap untuk kirim email di PHP dengan attachment. Hanya buat file PHP dengan kode seperti dibawah dan point form HTML ke file ini, dan jangan lupa untuk mengganti alamat email dan alamat email penerima dari kode dibawah ini:

if($_POST && isset($_FILES[‘my_file’]))
{$from_email = ‘ah@your_domain.com’; //from mail, it is mandatory with some hosts
$recipient_email = ’email@your_domain.com’; //recipient email (most cases it is your personal email)//Capture POST data from HTML form and Sanitize them, 
$sender_name = filter_var($_POST[“sender_name”], FILTER_SANITIZE_STRING); //sender name
$reply_to_email = filter_var($_POST[“sender_email”], FILTER_SANITIZE_STRING); //sender email used in “reply-to” header
$subject = filter_var($_POST[“subject”], FILTER_SANITIZE_STRING); //get subject from HTML form
$message = filter_var($_POST[“message”], FILTER_SANITIZE_STRING); //message
/* //don’t forget to validate empty fields
if(strlen($sender_name)<1){
die(‘Name is too short or empty!’);
}
*/
//Get uploaded file data
$file_tmp_name = $_FILES[‘my_file’][‘tmp_name’];
$file_name = $_FILES[‘my_file’][‘name’];
$file_size = $_FILES[‘my_file’][‘size’];
$file_type = $_FILES[‘my_file’][‘type’];
$file_error = $_FILES[‘my_file’][‘error’];

if($file_error > 0)
{
die(‘Upload error or No files uploaded’);
}
//read from the uploaded file & base64_encode content for the mail
$handle = fopen($file_tmp_name, “r”);
$content = fread($handle, $file_size);
fclose($handle);
$encoded_content = chunk_split(base64_encode($content));

$boundary = md5(“sanwebe”);
//header
$headers = “MIME-Version: 1.0\r\n“;
$headers .= “From:”.$from_email.“\r\n“;
$headers .= “Reply-To: “.$reply_to_email.“” . “\r\n“;
$headers .= “Content-Type: multipart/mixed; boundary = $boundary\r\n\r\n“;

//plain text 
$body = “–$boundary\r\n“;
$body .= “Content-Type: text/plain; charset=ISO-8859-1\r\n“;
$body .= “Content-Transfer-Encoding: base64\r\n\r\n“;
$body .= chunk_split(base64_encode($message));

//attachment
$body .= “–$boundary\r\n“;
$body .=“Content-Type: $file_type; name=”.$file_name.“\r\n“;
$body .=“Content-Disposition: attachment; filename=”.$file_name.“\r\n“;
$body .=“Content-Transfer-Encoding: base64\r\n“;
$body .=“X-Attachment-Id: “.rand(1000,99999).“\r\n\r\n“;
$body .= $encoded_content;

$sentMail = @mail($recipient_email, $subject, $body, $headers);
if($sentMail) //output success or failure messages
{
die(‘Thank you for your email’);
}else{
die(‘Could not send mail! Please check your PHP mail configuration.’);
}

}

Kamu bisa mendapatkan subject dan messages bodu dari form HTML dan menggunakan didalam kode.

 

Jakartawebhosting.com menyediakan layanan PHP Hosting, dengan kecepatanhttp://www.jakartawebhosting.com/php-web-hosting.aspx dan stabilitas pusat data dan server yang baik, up time server 99,9%, team support yang siap membantu 24 jam dan biaya langganan yang menarik.

Load More Related Articles
Load More By Pamela
Load More In Tekno
Comments are closed.

Check Also

Jangan Lewatkan Episode Running Man Terbaik Terbaru

Jika Anda penggemar setia dari variety show Running Man, maka Anda tidak boleh sampai mele…