Web Hosting
» PHP script to send mail with attachment
» PHP script to send mail to gmail

PHP Script to send email with attachment

The following php script can be used to send web form mails with attachment

Use the following PHP code to send attachments through web form Email. You can send multiple attachments by using this code. To send multiple attachments no chnages needed in PHP code, but you need to make the changes in HTML form to input more than one attachments.

Changes Required in the below Script:

Replace your_id@yourdomain.com with the Email ID to which you would like to receive the mails.
Replace admin@yourdomain.com with the Email ID from which you would like to send the form mails.

You can download the full code with HTML form, Javascript form validation and PHP Scripts in the attachment below.

if(isset($_POST['Submit'])) {
$email_to = "your_id@yourdomain.com";       // Change This
$email_subject = "PHP Form Mail- With Attachment";
$thankyou = "thanks.html";
$email_sender = "admin@yourdomain.com";       // Change This

// boundary
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
function died($error) {
echo "Sorry, but there were error(s) found with the form you submitted. ";
echo "These errors appear below.";
echo $error."";
echo "Please go back and fix these errors.";

$Name = $_POST['Name']; // Sender Name
$Email = $_POST['Email']; // Sender Email
$Phone = $_POST['Phone']; // Sender Phone
$Comment = $_POST['Comment']; // Sender Comments

function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);

$email_message = "PHP Mail With Attachment\n";
$email_message .= "------------------------\n\n\n";

$email_message .= "Full Name : ".clean_string($Name)."\n\n"; // Sender Name
$email_message .= "E-Mail Address : ".clean_string($Email)."\n\n"; // Sender Email
$email_message .= "Contact Number : ".clean_string($Phone)."\n\n"; // Sender Phone
$email_message .= "Comments : ".clean_string($Comment)."\n\n\n"; // Sender Comments

// multipart boundary
$email_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" . $email_message . "\n\n";
foreach($_FILES as $userfile){
// store the file information to variables for easier access
$tmp_name = $userfile['tmp_name'];
$type = $userfile['type'];
$name = $userfile['name'];
$size = $userfile['size'];
// if the upload succeded, the file will exist
if (file_exists($tmp_name)){
// check to make sure that it is an uploaded file and not a system file
// open the file for a binary read
$file = fopen($tmp_name,'rb');
// read the file content into a variable
$data = fread($file,filesize($tmp_name));
// close the file
// now we encode it and split it into acceptable length lines
$data = chunk_split(base64_encode($data));
$email_message .= "--{$mime_boundary}\n" .
"Content-Type: {$type};\n" .
" name=\"{$name}\"\n" .
"Content-Disposition: attachment;\n" .
" filename=\"{$fileatt_name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n";

$headers = 'From: '.$email_sender."\r\n". // Mail will be sent from your Admin ID
'Reply-To: '.$Email."\r\n" . // Reply to Sender Email
'X-Mailer: PHP/' . phpversion();
// headers for attachment
$headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\"";
@mail($email_to, $email_subject, $email_message, $headers);
header("Location: $thankyou");


To download the full code, please click here.
blog comments powered by Disqus
About Us | Contact us at : info@top-answers.net | Web Designing Company in Bangalore | SEO Company in Bangalore | Electrical Switch Dealers Bangalore
© top-answers.net | All Rights Reserved | Powered by Mindroit Technologies