I'm working on making an email script to be able to use file attachments. I've got a form that the user can fill out, with one of them being the field "pdfupload" where the user can upload a file. I cannot get the file to come through as an attachment to the email. It seems to send the email just fine, but with no attachment. Here is the PHP code, and the email that it sends me:
// Obtain file upload vars
$fileatt = $_FILES['pdfupload']['tmp_name'];
$fileatt_type = $_FILES['pdfupload']['type'];
$fileatt_name = $_FILES['pdfupload']['name'];
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 .= "From: ". $_POST['_from'] ."\r\n";
$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
// Add a multipart boundary above the plain message
$body = "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" .
$body . "\n\n";
// Base64 encode the file data
$data = chunk_split(base64_encode($data));
// Add file attachment to the message
$body .= "--{$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" .
$body. "\n\n" .
"--{$mime_boundary}--\n";
}
And here's the email:
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="==Multipart_Boundary_x00234ea3d3369e79aba237f589c842cfx"
This is a multi-part message in MIME format.
--==Multipart_Boundary_x00234ea3d3369e79aba237f589c842cfx
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
--==Multipart_Boundary_x00234ea3d3369e79aba237f589c842cfx
Content-Type: application/pdf;
name="EmploymentApp.pdf"
Content-Transfer-Encoding: base64
This is a multi-part message in MIME format.
--==Multipart_Boundary_x00234ea3d3369e79aba237f589c842cfx
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit