Monday, February 28, 2011

Simple mail attachment script in php


Hi Friends,
Introducing simple mail attachment script in php. It simply gather posted data ie name, email and file attached in a form and simple email function send an email with attached file.
You have to just replace your posted username, email and file attachment name variables within this script.
This script useful in contact us form where file attachment is an option or where file attachment is necessary like resume in a job provider website registration form.


<?php
//this settings for admin email
$to='admin@admin.com'; // mail to admin
$subject = "Email attachment script .. Enjoy it";
$name_from = $_POST['username']; // name of the user
$email_from = $_POST['email']; //email from

$message="Information:"."\n\n"."Name:".$name_from."\n"."Email:"."\n".$email_from."\n";

// Obtain file upload vars
$fileatt = $_FILES['fileatt']['tmp_name'];
$fileatt_type = $_FILES['fileatt']['type'];
$fileatt_name = $_FILES['fileatt']['name'];

$headers = "From: $email_from";

if (is_uploaded_file($fileatt))
{
// Read the file to be attached ('rb' = read binary)
$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
fclose($file);

// Generate a boundary string
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

// Add the headers for a file attachment
$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";

// Add a multipart boundary above the plain message
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";

// Base64 encode the file data
$data = chunk_split(base64_encode($data));

// Add file attachment to the message
$message .= "--{$mime_boundary}\n" .
"Content-Type: {$fileatt_type};\n" .
" name=\"{$fileatt_name}\"\n" .
//"Content-Disposition: attachment;\n" .
//" filename=\"{$fileatt_name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n" .
"--{$mime_boundary}--\n";
}

// Send the message
@mail($to, $subject, $message, $headers);
?>

No comments:

Post a Comment