SMTP server response: 451
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 "me@email.com";
// 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 <info@company.com>" . "=
\r\n";
$headers .=3D "Bcc: admin@email.com" . "\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 = "me@email.com";
// 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 <info@company.com>' . "\r\n";
$headers .= 'Bcc: admin@email.com' . "\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,
开发者_C百科 $_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
}
?
EDIT: 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).
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.
What's are all those 3D
's in the code? Just after $variable =
$recipientname =3D "Company";
Just saw your edit - wanted to throw PostageApp in your direction. It doesn't use the PHP mail() function, but only minor changes have to be made if you have written everything using the mail() function with your current set up.
Take a look, let me know if you have any questions!
(Full Disclosure: I am the Product Manager of PostageApp!)
精彩评论