stary_eyes47 Posted May 22, 2007 Share Posted May 22, 2007 I was wondering if anyone could help me. I am have made a very simple html form that uses php to email the data collected. What I am trying to do is have an upload attachment in the form, and have this also sent in the email. I have tried a few things, but nothing seems to work. This is waht I have so far: In my html form: <td colspan="2"><p class="style3">Please fill out the form and we will endeavour to get back to you as soon as possible. <br /> <span class="style7">.</span></p> </td> </tr> <tr> <td colspan="2"><table width="400" border="0" align="center" cellpadding="0" cellspacing="1"> <tr> <td> <?php include("send_contact_MAW_001.php"); ?> <? switch ($action) { case "send": sendMail(); showForm(); break; default: showForm(); } ?> </td> </tr> </table></td> and in my php handeller: <table width="397" border="0"> <tr> <td width="127"><span class="style3"> <input type="hidden" name="action" value="send" /> <input type="hidden" name="MAX_FILE_SIZE" value="10000000" /> <label>Name</label> </span></td> <td width="10"><span class="style3"> <label>:</label> </span></td> <td width="246"><input name="Name" class="text " id="Name" size="50" /></td> </tr> <tr> <td><span class="style3">Email</span></td> <td><span class="style3"> <label>:</label> </span></td> <td><input name="Email" class="text " id="Email" size="50" /></td> </tr> <tr> <td><span class="style3">Phone</span></td> <td><span class="style3">:</span></td> <td><input name="Phone" class="text " id="Phone" size="50" /></td> </tr> <tr> <td><span class="style3">Subject</span></td> <td><span class="style3"> <label>:</label> </span></td> <td><input name="Subject" class="text " id="Subject" size="50" /></td> </tr> <tr> <td><span class="style3">Industry</span></td> <td><span class="style3">:</span></td> <td><input name="Industry" class="text " id="Industry" size="50" /></td> </tr> <tr> <td><span class="style3">Attachment</span></td> <td><span class="style3">:</span></td> <td><input name="Attachment" type="file" class="text " id="Attachment" size="50" /></td> </tr> <tr> <td valign="top"><span class="style3">Enquiry</span></td> <td valign="top"><span class="style3">:</span></td> <td><span class="style3"> <textarea name="Enquiry" cols="50" rows="10" id="Enquiry"></textarea> </span> <p class="style3"></p></td> </tr> <tr> <td valign="top"><span class="style3"></span></td> <td valign="top"><span class="style3"></span></td> <td><span class="style3"> <input name="submit" type="submit" class="button2" value="Submit" /> <? } function sendMail() { if (!isset ($_POST['from_email'])) { //Oops, forgot your email addy! die ("<p>Oops! You forgot to fill out the email address! Click on the back arrow to go back</p>"); } else { $Name = stripslashes($_POST['Name']); $Subject = stripslashes($_POST['Subject']); $Phone = stripslashes($_POST['Phone']); $Industry = stripslashes($_POST['Industry']); $Enquiry = stripslashes($_POST['Enquiry']); $Email = $_POST['Email']; $Attachment = $_FILES['Attachment']['tmp_name']; $attachment_name = $_FILES['attachment']['name']; if (is_uploaded_file($attachment)) { //Do we have a file uploaded? $fp = fopen($attachment, "rb"); //Open it $data = fread($fp, filesize($attachment)); //Read it $data = chunk_split(base64_encode($data)); //Chunk it up and encode it as base64 so it can emailed fclose($fp); } //Let's start our headers $headers = "From: $Name<" . $_POST['Email'] . ">\n"; $headers .= "Reply-To: <" . $_POST['Email'] . ">\n"; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: multipart/related; type=\"multipart/alternative\"; boundary=\"----=MIME_BOUNDRY_main_message\"\n"; $headers .= "X-Sender: $Name<" . $_POST['Email'] . ">\n"; $headers .= "X-Mailer: PHP4\n"; $headers .= "X-Priority: 3\n"; //1 = Urgent, 3 = Normal $headers .= "Return-Path: <" . $_POST['Email'] . ">\n"; $headers .= "This is a multi-part message in MIME format.\n"; $headers .= "------=MIME_BOUNDRY_main_message \n"; $headers .= "Content-Type: multipart/alternative; boundary=\"----=MIME_BOUNDRY_message_parts\"\n"; $message = "------=MIME_BOUNDRY_message_parts\n"; $message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; $message .= "Content-Transfer-Encoding: quoted-printable\n"; $message .= "\n"; /* Add our message, in this case it's plain text. You could also add HTML by changing the Content-Type to text/html */ $message .= "$Enquiry\n"; $message .= "\n"; $message .= "------=MIME_BOUNDRY_message_parts--\n"; $message .= "\n"; $message .= "------=MIME_BOUNDRY_main_message\n"; $message .= "Content-Type: application/octet-stream;\n\tname=\"" . $attachment_name . "\"\n"; $message .= "Content-Transfer-Encoding: base64\n"; $message .= "Content-Disposition: attachment;\n\tfilename=\"" . $attachment_name . "\"\n\n"; $message .= $data; //The base64 encoded message $message .= "\n"; $message .= "------=MIME_BOUNDRY_main_message--\n"; // send the message mail("[email protected]", $subject, $message, $headers); } } print <<< EOT <?xml version="1.0" encoding="iso-8859-1"?> EOT; ?></span></td> </tr> </table> Any help would be greatly appreciated Link to comment https://forums.phpfreaks.com/topic/52420-upload-attachment-and-email/ Share on other sites More sharing options...
hitman6003 Posted May 22, 2007 Share Posted May 22, 2007 Where is your open / close form tag? The single most important part of your file upload form is the enc type.... http://us2.php.net/manual/en/features.file-upload.php Link to comment https://forums.phpfreaks.com/topic/52420-upload-attachment-and-email/#findComment-258698 Share on other sites More sharing options...
stary_eyes47 Posted May 22, 2007 Author Share Posted May 22, 2007 This is the entire form.html file that I have. It just doesn't work. <html> <form enctype="multipart/form-data" method="POST"> <td colspan="2"><p class="style3">Please fill out the form and we will endeavour to get back to you as soon as possible. <span class="style7">.</span></p> </td> </tr> <tr> <td colspan="2"><table width="400" border="0" align="center" cellpadding="0" cellspacing="1"> <tr> <td> <?php include("send_contact_MAW_001.php"); ?> <? switch ($action) { case "send": sendMail(); showForm(); break; default: showForm(); } ?> </td> </tr> </table></td> </form> </html> Link to comment https://forums.phpfreaks.com/topic/52420-upload-attachment-and-email/#findComment-258705 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.