• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 376
  • Last Modified:

PHP sends email, but not PDF attachment

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
fastfind1
Asked:
fastfind1
1 Solution
 
vercesiCommented:
I believe this can help you:

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

Regards

Ricardo Vercesi
0
 
RoonaanCommented:
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

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now