我已经构建了2个联系表单(quote.php和contact.php),用jquery验证并提交给单独的ajax_contact.php和ajax_quote.php文件。它们都是基于我在其他网站上使用的相同模板构建的,但由于某种原因,ajax_contact.php返回此错误:
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
我收到了自动回复邮件,但没有收到实际包含表单中提交的数据的电子邮件。
我真的以这个为结局。一直试图用“\ r \ n”和“\ n”整天修复它,我认为会根据错误修复它,但我仍然在同一条船上。
这是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>";
?
这是ajax_quote.php,这是一回事,只是为了另一种形式:
<?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>";
?
这是ajaxSubmit.php,它做的不多:
<?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
}
?
编辑:我对它进行了一些调查,结果发现GoDaddy windows托管(不是我的选择)不允许使用PHP邮件功能。所以我要么找到一个可行的解决方法(看起来那里有一些,似乎没有多少工作),或者我让他们切换到Linux托管(可能会修复它)。
答案 0 :(得分:2)
不仅在标题中使用\ r \ n,还在正文中使用\ n \ n \ n。 由于您使用文件中的换行符,因此可以在您使用的代码编辑器中进行设置。
答案 1 :(得分:0)
代码中3D
的所有内容是什么?就在$ variable =
$recipientname =3D "Company";
答案 2 :(得分:-2)
刚看到你的编辑 - 想要向你的方向投掷PostageApp。它不使用PHP mail()函数,但如果您使用当前设置的mail()函数编写了所有内容,则只需进行少量更改。
看看,如果您有任何疑问,请与我联系!
(完全披露:我是PostageApp的产品经理!)