views:

688

answers:

1

I've build 2 contact forms (quote.php and contact.php), validated with jquery and submitted with to separate ajax_contact.php and ajax_quote.php files. They've both been built on the same template I've used on other sites, but for some reason the ajax_contact.php is returning this error:

Warning: mail() [function.mail]: SMTP server response: 451 See http://pobox.com/~djb/docs/smtplf.html. in D:\Hosting\5219056\html\ajax_contact.php on line 41

I'm getting the autoresponder email, but not the email that actually contains the data submitted in the form.

I'm literally at my wit's end with this. Been trying to fix it all day with "\r\n" and "\n", which I thought would fix it according to the error, but am still in the same boat.

Here is ajax_contact.php:

    <?php

        // where is your config file stored?
include ("ajaxSubmit.php");

    // CLIENT INFORMATION

$Firstname =3D $HTTP_POST_VARS['Firstname'];
$Lastname =3D $HTTP_POST_VARS['Lastname'];
$email =3D $HTTP_POST_VARS['email'];
$Business =3D $HTTP_POST_VARS['Business'];
$Address =3D $HTTP_POST_VARS['Address'];
$City =3D $HTTP_POST_VARS['City'];
$State =3D $HTTP_POST_VARS['State'];
$Zip =3D $HTTP_POST_VARS['Zip'];
$Phone =3D $HTTP_POST_VARS['Phone'];
$Fax =3D $HTTP_POST_VARS['Fax'];
$Comments =3D $HTTP_POST_VARS['Comments'];


// MODIFY THE FOLLOWING SECTION

// your name
$recipientname =3D "Company";

// your email
$recipientemail =3D "[email protected]";

// subject of the email sent to you
$subject =3D "Feedback for $recipientname";

// send an autoresponse to the user?
$autoresponse =3D "yes";

// subject of autoresponse
$autosubject =3D "Thank you for your mail!";

// autoresponse message
$automessage =3D "Thanks for the message.";

// thankyou displayed after the user clicks "submit"
$thanks =3D "Thank you for contacting us. We will get back to you as soon =
as possible.";

// END OF NECESSARY MODIFICATIONS

// format message
$message =3D "Online-Form Response for $recipientname:
<br>
Firstname: $Firstname
<br>
Lastname: $Lastname
<br>
Email: $email
<br>
Business: $Business
<br>
Address: $Address
<br>
City: $City
<br>
State: $State
<br>
Zip: $Zip
<br>
Phone: $Phone
<br>
Fax: $Fax
<br>
Comments: $Comments
<br>
";

// To send HTML mail, the Content-type header must be set
$headers  =3D "MIME-Version: 1.0" . "\r\n";
$headers .=3D "Content-type: text/html; charset=3Diso-8859-1" . "\r\n";

// Additional headers
$headers .=3D "From: Company <[email protected]>" . "=
\r\n";
$headers .=3D "Bcc: [email protected]" . "\r\n";

// send mail and print success message
mail($recipientemail, $subject, $message, $headers);

    echo "<script language=3D\"JavaScript\" type=3D\"text/JavaScript\"> windo=
w.location.href =3D \"thanks_feedback.php\";</script>";

?

Here is ajax_quote.php, which is the same thing, just for a different form:

    <?php
        // where is your config file stored?
include ("ajaxSubmit.php");

    // CLIENT INFORMATION

$Contactname = $HTTP_POST_VARS['Contactname'];
$email = $HTTP_POST_VARS['email'];
$Contacttitle = $HTTP_POST_VARS['Contacttitle'];
$Business = $HTTP_POST_VARS['Business'];
$Address = $HTTP_POST_VARS['Address'];
$State = $HTTP_POST_VARS['State'];
$Zip = $HTTP_POST_VARS['Zip'];
$Phone = $HTTP_POST_VARS['Phone'];
$Fax = $HTTP_POST_VARS['Fax'];
$product_desc = $HTTP_POST_VARS['product_desc'];
$sku = $HTTP_POST_VARS['sku'];
$annualturns = $HTTP_POST_VARS['annualturns'];
$seasonal = $HTTP_POST_VARS['seasonal'];
$minmaxpallet = $HTTP_POST_VARS['minmaxpallet'];
$avgpalletval = $HTTP_POST_VARS['avgpalletval'];
$avgpalletwt = $HTTP_POST_VARS['avgpalletwt'];
$maxpalletht = $HTTP_POST_VARS['maxpalletht'];
$casesperpallet = $HTTP_POST_VARS['casesperpallet'];
$unitweight = $HTTP_POST_VARS['unitweight'];
$reqlotnumctrl = $HTTP_POST_VARS['reqlotnumctrl'];
$freightclass = $HTTP_POST_VARS['freightclass'];
$hazardclass = $HTTP_POST_VARS['hazardclass'];
$barcodes = $HTTP_POST_VARS['barcodes'];
$avgupsfedex = $HTTP_POST_VARS['avgupsfedex'];
$avgorderweight = $HTTP_POST_VARS['avgorderweight'];
$ordersending = $HTTP_POST_VARS['ordersending'];
$custpickups = $HTTP_POST_VARS['custpickups'];
$flatfiles = $HTTP_POST_VARS['flatfiles'];
$shrinkwrap = $HTTP_POST_VARS['shrinkwrap'];
$repack = $HTTP_POST_VARS['repack'];
$specialreq = $HTTP_POST_VARS['specialreq'];

$browser = $HTTP_USER_AGENT;
$ip = $REMOTE_ADDR;

// MODIFY THE FOLLOWING SECTION

// your name
$recipientname = "Company";

// your email
$recipientemail = "[email protected]";

// subject of the email sent to you
$subject = "Quote Request for $recipientname";

// send an autoresponse to the user?
$autoresponse = "yes";

// subject of autoresponse
$autosubject = "Thank you for your mail!";

// autoresponse message
$automessage = "Thanks for the message. We've successfully received your quote request and will get back to you shortly.";

// thankyou displayed after the user clicks "submit"
$thanks = "Thank you for contacting us. We will get back to you as soon as possible.";

// END OF NECESSARY MODIFICATIONS

// format message
$message = "Online-Form Response for $recipientname:
<br>
Contact Name: $Contactname
<br>
Business: $Business
<br>
Email: $email
<br>
Address: $Address
<br>
State: $State
<br>
Zip: $Zip
<br>
Phone: $Phone
<br>
Fax: $Fax
<br>
--
<br>
Describe your product(s): $product_desc
<br>
How many SKU's (items): $sku
<br>
How many turns per year?: $annualturns
<br>
Are your products seasonal?: $seasonal
<br>
Indicate minimum and Maximum pallet levels: $minmaxpallet
<br>
Average value per pallet: $avgpalletval
<br>
Weight of a typical pallet: $avgpalletwt
<br>
Maximum pallet stacking height: $maxpalletht
<br>
Cases per pallet? Or average case size?: $casesperpallet
<br>
Weight of each unit?: $unitweight
<br>
Do you require lot number control?: $reqlotnumctrl
<br>
What freight class?: $freightclass
<br>
Is the product hazardous? If so, what classifications?: $hazardclass
<br>
--
<br>
Do you need custom Barcodes made?: $barcodes
<br>
What is the average number of orders shipped via UPS/Fedex?: $avgupsfedex
<br>
What is the average order size in weight?: $avgorderweight
<br>
What is the average number of lines per order?: $avgorderlines
<br>
Will your orders be sent via E-mail, FAX, or other?: $ordersending
<br>
Will you have customer pick ups, and how often?: $custpickups
<br>
Can your company e-mail us flat files?: $flatfiles
<br>
Do your orders need to be shrink wrapped?: $shrinkwrap
<br>
Do you need repackaging?: $repack
<br>
Are there any special requirements that your company may have?: $specialreq
<br>
-----------------------------
<br>
Browser: $browser
<br>
User IP: $ip";

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'From: Company <[email protected]>' . "\r\n";
$headers .= 'Bcc: [email protected]' . "\r\n";

// send mail and print success message
mail($recipientemail, $subject, $message, $headers);

if($autoresponse == "yes") {
$autosubject = stripslashes($autosubject);
$automessage = stripslashes($automessage);
mail($email,"$autosubject","$automessage","From: $recipientname <$recipientemail>");
}

    echo "<script language=\"JavaScript\" type=\"text/JavaScript\"> window.location.href = \"thanks_quote.php\";</script>";

?

Here is ajaxSubmit.php, which doesn't do much:

    <?php

/* VALIDATE HOW YOU NEED TO VALIDATE */
require_once('recaptchalib.php');
$privatekey = "******************************";
$resp = recaptcha_check_answer ($privatekey,
                                $_SERVER["REMOTE_ADDR"],
                                $_POST["recaptcha_challenge_field"],
                                $_POST["recaptcha_response_field"]);

if (!$resp->is_valid) {
  die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
       "(reCAPTCHA said: " . $resp->error . ")");
}

$isValidate = true;  // RETURN TRUE FROM VALIDATING, NO ERROR DETECTED
/* RETTURN ARRAY FROM YOUR VALIDATION  */


/* THIS NEED TO BE IN YOUR FILE NO MATTERS WHAT */
if($isValidate == true){
    echo "";
}else{
    echo '{"jsonValidateReturn":'.json_encode($arrayError).'}';     // RETURN ARRAY WITH ERROR
}
?

I looked into it a bit more, and it turns out the GoDaddy windows hosting(NOT my choice) doesn't allow the PHP mail function. So I either find a workaround that works(looks like there's a few out there, not many that seem to work), or I get them to switch to Linux hosting(which might fix it).

A: 

Use \r\n not only in header, but also in body. Since you using line breaks from your file, you may set it in code editor you use.

I tried that, but maybe I didn't do it right. Should the LF go after each line break in the body message?
miles
From server's answer to you it seemes you need to use some another line-break, not LF only. Try \r\n