I got the form to accept an attachment and send the attachment but if it's a doc it's blank:
$fileatt = $_FILES['file']['tmp_name']; $fileattType = $_FILES['file']['type']; $fileattName = $_FILES['file']['name']; $file = fopen($fileatt,'rb'); $data = fread($file,filesize($fileatt)); fclose($file); $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; $headers = "from: $email"; $headers .= " MIME-Version: 1.0 " . "Content-Type: multipart/mixed; " . " boundary=\"{$mime_boundary}\""; $content = "Info about user"; $content = "This is a multi-part message in MIME format. " . "--{$mime_boundary} " . "Content-Type: text/plain; charset=\"iso-8859-1\" " . "Content-Transfer-Encoding: 7bit " . $content . " "; $data = chunk_split(base64_encode($data)); $content .= "--{$mime_boundary} " . "Content-Type: {$fileattType}; " . " name=\"{$fileattName}\" " . "Content-Disposition: attachment; " . " filename=\"{$fileattName}\" " . "Content-Transfer-Encoding: base64 " . $data . " " . "--{$mime_boundary}-- "; $send = mail( "user@provider.com", "Form", $content, $headers); if($send) header('Location: success page'); else header('Location: fail page');
The email sends correctly, there is an attachment with the correct name, file type, and file size. when it opens it is empty.
I got the tutorial from sitepoint: http://articles.sitep... ... mail-php/5
I tested the files they provide and the same thing happens. Any ideas would be great. thanks everyone!
Welcome to SO.
This is not a direct answer to your question, but I would recommend you use a ready-made mailing class like PHPMailer. It has all the quirks, encoding and attaching functions already built in, which is much less error-prone than doing it by hand. If you want to go that way, maybe this collection of tutorial links on PHPMailer will help you get started.
I strongly suggest you start using a library for sending emails, it eases the process of writing emails and makes the code a lot more transient.
I can vouch for Swiftmailer, an actively developed library with excellent features.
Especially complicated tasks like attachments, inline images and multiple recipients are implemented easily.
I would strongly recommend using a preexisting tool to send emails, such as Swift. There are a lot of caveats that it will take care of for you, and it's quite easy to use.
Perhaps you could use instead of those
Answer with code example is here: http://www.webcheatsheet.com/PHP/send_email_text_html_attachment.php