Solved

PHP sends email, but not PDF attachment

Posted on 2008-06-20
2
365 Views
Last Modified: 2012-05-05
The following PHP code correctly sends an email with the appropriate variables in the body of the email.  However, it is also supposed to send a PDF attachement called form.pdf.  The PDF file is found in the root directory of the website.

Please help me figure out why the email is sent, but not the PDF attachment.

I have changed the To and From email addresses to fake addresses.  
$emailSubject = 'New Completed PDF';
	$webMaster = 'fake@email.com';
	$firstnameEM = $_SESSION['svFirstName'];
	$lastnameEM = $_SESSION['svLastName'];
	$companyEM = $_SESSION['svCompany'];
	$phoneEM = $_SESSION['svphone'];
	$emailEM = $_SESSION['svemail'];
	$dateEM = date('l, F dS Y.');
	$body = <<<EOD
<br><hr><br>
First Name:  $firstnameEM <br><br>
Last Name:  $lastnameEM <br><br>
Company:  $companyEM <br><br>
Phone: $phoneEM <br><br>
Email:  $emailEM <br><br>
Date Completed Form:  $dateEM <br><br>
Find attached PDF of completed Application.
 
EOD;
 
	/*$headers = "From: $emailField\r\n";  */
	$headers = "From:  fake@email.com\r\n";
	
	$headers .= "Content-type: text/html\r\n";
	
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
 
$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
 
$email_message .= "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type:text/html; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$email_message . "\n\n";
 
 
 
/********************************************** First File ********************************************/
 
 
$fileatt = "form.pdf"; // Path to the file
$fileatt_type = "application/octet-stream"; // File Type
$fileatt_name = "application.pdf"; // Filename that will be used for the file as the attachment
 
$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
fclose($file);
 
 
$data = chunk_split(base64_encode($data));
 
$email_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";
unset($data);
unset($file);
unset($fileatt);
unset($fileatt_type);
unset($fileatt_name);
 
	
	
	$success = mail($webMaster, $emailSubject, $body, $headers);
	$theResults = <<<EOD
 
EOD;
echo "$theResults";

Open in new window

0
Comment
Question by:fastfind1
2 Comments
 
LVL 1

Accepted Solution

by:
vercesi earned 500 total points
ID: 21830784
I believe this can help you:

http://www.webcheatsheet.com/PHP/send_email_text_html_attachment.php#attachment

Regards

Ricardo Vercesi
0
 
LVL 49

Expert Comment

by:Roonaan
ID: 21832329
If that doesn't help. Try the phpmailer class. It supports about anything you need in regard to mailing and is been used by thousands of sites. Saves you to reinvent the wheel.
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article discusses four methods for overlaying images in a container on a web page
These days, all we hear about hacktivists took down so and so websites and retrieved thousands of user’s data. One of the techniques to get unauthorized access to database is by performing SQL injection. This article is quite lengthy which gives bas…
This video teaches users how to migrate an existing Wordpress website to a new domain.
The viewer will learn how to count occurrences of each item in an array.

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question