didster Posted November 20, 2008 Share Posted November 20, 2008 Hi, you may have seen this code before as I thought I was having problems with email. It turned out that it was the hosts fault! This problem is probably the same, I can now send email but any attachments added using the upload feature, send the attachment file but with no content. I have tried it on my own server and several others and is fine. Please help The phpinfo of the new server is... http://www.splinegauges.co.uk/phpinfo.php <?php // ------------- CONFIGURABLE SECTION ------------------------ $to = '' ;// $subject - set to the Subject line of the email, eg //$subject = "Feedback Form" ; $subject = "Plug Gauge Quote Request Form" ; $formurl = "/enquiryform/pluggauge.htm"; $errorurl = "/enquiryform/error.htm" ; $thankyouurl = "/enquiryform/thankyou.htm" ; // -------------------- END OF CONFIGURABLE SECTION --------------- $contactname = $_POST['contactname'] ; $companyname = $_POST['companyname'] ; $currentaddress = $_POST['currentaddress'] ; $contactnumber = $_POST['contactnumber'] ; $rfqreference = $_POST['rfqreference'] ; $teeth = $_POST['teeth'] ; $dpmoduletext = $_POST['dpmoduletext'] ; $dpmoduledrop = $_POST['dpmoduledrop'] ; $pressureangle = $_POST['pressureangle'] ; $helixangle = $_POST['helixangle'] ; $helixhand = $_POST['helixhand'] ; $pitchtext = $_POST['pitchtext'] ; $pitchdrop = $_POST['pitchdrop'] ; $gauge = $_POST['gauge'] ; $typefit = $_POST['typefit'] ; $facetext = $_POST['facetext'] ; $facedrop = $_POST['facedrop'] ; $quantity = $_POST['quantity'] ; $materials = $_POST['materials'] ; $notes = $_POST['notes'] ; $chknotest = $_POST['chkno'] ; // Read POST request params into global vars $from = $_POST['from']; // Obtain file upload vars $fileatt = $_FILES['fileatt']['tmp_name']; $fileatt_type = $_FILES['fileatt']['type']; $fileatt_name = $_FILES['fileatt']['name']; $headers = "From: $from"; // 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"; $message .= "\n\n-- Chk --\n\n" . $_POST['chkno'][0] . $_POST['chkno'][1] . $_POST['chkno'][2] ; if (!empty($contactname)) { $message .= "\n\n-- Contact Name --\n\n" . $contactname; } if (!empty($companyname)) { $message .= "\n\n-- Company Name --\n\n" . $companyname; } if (!empty($currentaddress)) { $message .= "\n\n-- Current Address --\n\n" . $currentaddress; } if (!empty($contactnumber)) { $message .= "\n\n-- Contact Number --\n\n" . $contactnumber; } if (!empty($rfqreference)) { $message .= "\n\n-- RFQ Reference Number --\n\n" . $rfqreference; } if (!empty($teeth)) { $message .= "\n\n-- Teeth --\n\n" . $teeth; } if (!empty($dpmoduletext)) { $message .= "\n\n-- DP Module Text --\n\n" . $dpmoduletext; } if (!empty($dpmoduledrop)) { $message .= "\n\n-- DP Module Drop --\n\n" . $dpmoduledrop; } if (!empty($pressureangle)) { $message .= "\n\n-- Pressure Angle --\n\n" . $pressureangle; } if (!empty($helixangle)) { $message .= "\n\n-- Helix Angle --\n\n" . $helixangle; } if (!empty($helixhand)) { $message .= "\n\n-- Helix Hand --\n\n" . $helixhand; } if (!empty($pitchtext)) { $message .= "\n\n-- Pitch Text (Check If Serration) --\n\n" . $dpmoduledrop . " " . $pitchtext; } if (!empty($pitchdrop)) { $message .= "\n\n-- Pitch Drop (Check If Serration) --\n\n" . $dpmoduledrop . " " . $pitchdrop; } if (!empty($gauge)) { $message .= "\n\n-- Gauge Ref/Tool No. --\n\n" . $gauge; } if (!empty($typefit)) { $message .= "\n\n-- Type Fit --\n\n" . $typefit; } if (!empty($facetext)) { $message .= "\n\n-- Face Width Text --\n\n" . $facetext; } if (!empty($facedrop)) { $message .= "\n\n-- Face Width Drop --\n\n" . $facedrop; } if (!empty($quantity)) { $message .= "\n\n-- Quantity --\n\n" . $quantity; } if (!empty($materials)) { $message .= "\n\n-- Materials --\n\n" . $materials; } if (!empty($notes)) { $message .= "\n\n-- Notes --\n\n" . $notes; } // Add the headers for a file attachment $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; // Add a multipart boundary above the plain message $message = "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" . $message . "\n\n"; // Base64 encode the file data $data = chunk_split(base64_encode($data)); // Add file attachment to the message $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"; $http_referrer = getenv( "HTTP_REFERER" ); if (!isset($_POST['from'])) { header( "Location: $formurl" ); exit ; } if (empty($contactname) || empty($from) || empty($companyname) || empty($contactnumber) || empty($teeth) || empty($quantity) || empty($chknotest)/* || empty($dpmoduletext) || empty($dpmoduledrop) || empty($currentaddress) || empty($rfqreference) || empty($pressureangle) || empty($helixangle) || empty($helixhand) || empty($pitchtext) || empty($pitchdrop) || empty($gauge) || empty($typefit) || empty($facetext) || empty($facedrop) || empty($quantity) || empty($materials) ||empty($notes) */) { header( "Location: $errorurl" ); exit ; } $contactname = strtok( $contactname, "\r\n" ); $email = strtok( $email, "\r\n" ); if (get_magic_quotes_gpc()) { $chkno = stripslashes( $chkno ); $companyname = stripslashes( $companyname ); $currentaddress = stripslashes( $currentaddress ); $contactnumber = stripslashes( $contactnumber ); $rfqreference = stripslashes( $rfqreference ); $teeth = stripslashes( $teeth ); $dpmoduletext = stripslashes( $dpmoduletext ); $dpmoduledrop = stripslashes( $dpmoduledrop ); $pressureangle = stripslashes( $pressureangle ); $helixangle = stripslashes( $helixangle ); $helixhand = stripslashes( $helixhand ); $pitchtext = stripslashes( $pitchtext ); $pitchdrop = stripslashes( $pitchdrop ); $gauge = stripslashes( $gauge ); $typefit = stripslashes( $typefit ); $facetext = stripslashes( $facetext ); $facedrop = stripslashes( $facedrop ); $quantity = stripslashes( $quantity ); $materials = stripslashes( $materials ); $notes = stripslashes( $notes ); } ini_set("sendmail_from", $from); mail($to, $subject, $message, $headers); header( "Location: $thankyouurl" ); exit ; ?> Link to comment https://forums.phpfreaks.com/topic/133522-send-file-attachments-but-they-arrive-without-content/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.