2010-01-16 184 views
0

我已经构建了2个联系表单(quote.php和contact.php),并使用jquery进行了验证,并使用它提交以分开ajax_contact.php和ajax_quote.php文件。他们俩都建立在我在其他网站使用相同的模板,但由于某些原因,ajax_contact.php将返回该错误:SMTP服务器响应:451

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 "[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>"; 

? 

这里是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 = "[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>"; 

? 

这里是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窗口托管(N OT我的选择)不允许PHP邮件功能。所以我要么找到一个可行的解决方法(看起来好像有几个,似乎没有多少工作),或者我让他们切换到Linux托管(可能会解决这个问题)。

+1

请问,如果你不使用任何自定义页眉工作? – 2010-01-16 00:33:01

回答

2

不仅在标题中,而且在正文中使用\ r \ n。 由于您使用文件中的换行符,因此可以在您使用的代码编辑器中进行设置。

+0

我试过了,但也许我做得不对。 LF应该在正文消息的每个换行符之后进行吗? – miles 2010-01-21 14:31:34

+0

从服务器对你的答案看来,你需要使用另一个换行符,而不是只使用LF。尝试\ r \ n – kirilloid 2010-01-21 19:43:33

0

什么是所有那些3D的代码? $ variable =

$recipientname =3D "Company"; 
+0

yikes,我不知道。自从我问这个问题已经有一段时间了。我甚至不记得我在做什么。 : -/ – miles 2011-02-28 20:32:14

+0

嘿,是的,这是一个相当古老的线程。它由于某种原因弹出在首页上。你在做什么,我认为这会是问题:-) – 2011-02-28 20:43:02

-2

刚刚看到你的编辑 - 想把PostageApp扔在你的方向。它不使用PHP mail()函数,但是如果您已经使用当前设置的mail()函数编写了所有内容,则只需进行微小的更改。

看一看,让我知道如果您有任何问题!

披露:我PostageApp的产品经理!)